@font-face {
  font-family: "Public Sans";
  src: url("../fonts/public-sans/PublicSans-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Public Sans";
  src: url("../fonts/public-sans/PublicSans-Medium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Public Sans";
  src: url("../fonts/public-sans/PublicSans-SemiBold.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Public Sans";
  src: url("../fonts/public-sans/PublicSans-Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  src: url("../fonts/inter/InterVariable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Poppins";
  src: url("../fonts/poppins/Poppins-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Poppins";
  src: url("../fonts/poppins/Poppins-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Poppins";
  src: url("../fonts/poppins/Poppins-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Poppins";
  src: url("../fonts/poppins/Poppins-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

.btn-lg {
  font-weight: 400;
}

.kitchen-board .card .btn {
  white-space: normal;
}

.photo-thumb {
  width: 100%;
  height: 200px;
  object-fit: cover;
  background: #f2f4f7;
}

.dashboard-review-qr {
  width: 220px;
  max-width: 100%;
  height: auto;
  border-radius: 1rem;
  border: 1px solid #e5e7eb;
  background: #fff;
  padding: 0.75rem;
}

:root {
  --brand-red: #c6281d;
  --brand-red-dark: #a91f16;
  --brand-orange: #f59e0b;
  --brand-yellow: #facc15;
  --page-bg: #f7f8fc;
  --panel-bg: #ffffff;
  --sidebar-bg: #11143f;
  --sidebar-bg-dark: #0b0d2d;
  --sidebar-active: #3f2b8f;
  --text-main: #0f172a;
  --text-muted: #64748b;
  --text-white: #ffffff;
  --border-soft: #e5e7eb;
  --border-medium: #cfd7e3;
  --radius-sm: 10px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --shadow-soft: 0 12px 32px rgba(15, 23, 42, 0.06);
  --shadow-card: 0 10px 28px rgba(15, 23, 42, 0.05);
  --app-adminlte-card-border: rgba(0, 0, 0, 0.175);
  --app-adminlte-card-radius: 0.375rem;
  --app-adminlte-card-shadow: 0 0 1px rgba(33, 37, 41, 0.125), 0 1px 3px rgba(33, 37, 41, 0.2);
  --app-adminlte-card-shadow-hover: 0 0 1px rgba(33, 37, 41, 0.16), 0 4px 12px rgba(33, 37, 41, 0.2);
  --app-adminlte-card-header-bg: rgba(33, 37, 41, 0.03);
  --card-red-bg: #fff3ef;
  --card-purple-bg: #f5f1ff;
  --card-green-bg: #eefbf2;
  --card-blue-bg: #eef5ff;
  --font-main: "Poppins", sans-serif;
  --font-sneat-buttons: "Poppins", sans-serif;
  --font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --app-sidebar-width: 202px;
  --app-sidebar-collapsed-width: 84px;
  --app-sidebar-gap: 0px;
  --app-sidebar-collapsed-gap: 14px;
}

@media (min-width: 992px) {
  :root {
    --app-sidebar-width: 263px;
  }
}

html {
  font-size: 16px;
}

body {
  background: var(--page-bg);
  color: var(--text-main);
  font-family: var(--font-main);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
}

button,
input,
select,
textarea,
.btn,
.form-control,
.form-select,
.dropdown-menu,
.table,
.card {
  font-family: var(--font-main);
}

h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  font-family: var(--font-main);
  font-weight: 500;
  line-height: 1.2;
}

.btn {
  font-family: var(--font-sneat-buttons);
  font-weight: 400;
  letter-spacing: 0;
}

.badge {
  font-weight: 700;
}

*::-webkit-scrollbar-button {
  width: 0;
  height: 0;
  display: none;
}

.app-shell {
  padding-left: calc(var(--app-sidebar-width) + var(--app-sidebar-gap));
  transition: padding-left 220ms ease;
  background: var(--page-bg);
}

.app-page-shell {
  width: 100%;
  max-width: none;
  transition: max-width 220ms ease, padding 220ms ease;
  padding-top: 1rem;
  padding-bottom: 2rem;
}

.wrapper.bg-body-tertiary,
.body.flex-grow-1,
.container-fluid.app-page-shell,
.container-lg.px-4 {
  background: var(--page-bg) !important;
}

.sidebar {
  display: flex !important;
  flex-direction: column;
  height: 100dvh !important;
  max-height: 100dvh;
  overflow: hidden !important;
  background: linear-gradient(180deg, var(--sidebar-bg) 0%, var(--sidebar-bg-dark) 100%) !important;
  border-right: 1px solid rgba(255, 255, 255, 0.08) !important;
  box-shadow: 18px 0 38px rgba(15, 23, 42, 0.08);
}

.sidebar-brand {
  padding: 1rem 0.8rem;
  transition: padding 220ms ease;
}

.app-brand-copy {
  min-width: 0;
  max-width: 160px;
  transition: opacity 180ms ease, transform 220ms ease, max-width 220ms ease;
}

.app-brand-logo {
  width: 44px;
  height: 44px;
  object-fit: contain;
  border-radius: 999px;
  background: #111;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.18);
}

.app-brand-logo-public {
  width: 46px;
  height: 46px;
}

.app-brand-name {
  font-size: 1.35rem;
  line-height: 1;
  font-weight: 700;
  white-space: normal;
}

.sidebar-brand .small {
  display: block;
  margin-top: 0.45rem;
  font-size: 0.76rem;
  line-height: 1.4;
  white-space: normal;
  color: #d5dde8 !important;
}

.app-back-btn {
  min-width: 96px;
}

.form-label {
  font-size: 13px;
  font-weight: 600;
  color: #111827;
}

.app-header-row {
  min-height: 68px;
  width: 100%;
}

.app-header-left {
  min-width: 0;
  flex: 1 1 auto;
}

.app-header-title {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.app-header-title__mobile {
  display: none;
}

.app-header-right {
  margin-left: auto !important;
  flex: 0 0 auto;
  justify-content: flex-end;
  text-align: right;
}

.app-notification-dropdown {
  position: relative;
}

.header {
  background: #fff;
  border-bottom: 1px solid var(--border-soft);
  box-shadow: 0 4px 20px rgba(15, 23, 42, 0.03);
}

.header .container-fluid {
  background: #fff;
}

.sidebar .sidebar-nav {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch;
  flex: 1 1 auto;
  min-height: 0;
  padding: 0.8rem 0.65rem 1rem;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  scrollbar-color: rgba(255, 255, 255, 0.28) transparent;
  scrollbar-width: thin;
}

.sidebar .sidebar-nav > * {
  flex: 0 0 auto;
}

.sidebar .sidebar-header,
.sidebar .sidebar-footer {
  flex: 0 0 auto;
}

.sidebar .sidebar-footer {
  position: relative;
  z-index: 3;
  background: var(--sidebar-bg-dark);
}

.sidebar .simplebar-wrapper,
.sidebar .simplebar-mask,
.sidebar .simplebar-offset {
  min-height: 0;
}

.sidebar .simplebar-content-wrapper {
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.sidebar .nav-title {
  margin: 0.45rem 0 0.45rem 0.35rem;
  color: #9ca3af;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.sidebar .nav-link {
  min-height: 40px;
  margin-bottom: 0.18rem;
  border-radius: 7px;
  color: #e5e7eb;
  font-size: 0.86rem;
  font-weight: 600;
  transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.sidebar .nav-link:hover {
  background: rgba(255, 255, 255, 0.08);
  transform: translateX(1px);
}

.sidebar .nav-link.active,
.sidebar .nav-link.router-link-active,
.sidebar .nav-link[aria-current="page"] {
  background: var(--sidebar-active);
  color: var(--brand-orange);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.app-sidebar-icon {
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.app-sidebar-icon svg {
  width: 18px;
  height: 18px;
}

.app-sidebar-label {
  font-weight: 600;
}

.app-sidebar-group {
  display: grid;
  gap: 0.25rem;
}

.app-sidebar-group-toggle {
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
}

.app-sidebar-group-title {
  min-width: 0;
  flex: 1 1 auto;
  font-weight: 700;
}

.app-sidebar-group-chevron {
  width: 1.25rem;
  height: 1.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #cbd5e1;
  transition: transform 180ms ease;
}

.app-sidebar-group-chevron svg {
  width: 1.1rem;
  height: 1.1rem;
}

.app-sidebar-group.is-open .app-sidebar-group-chevron {
  transform: rotate(180deg);
}

.app-sidebar-subnav {
  display: none;
  list-style: none;
  margin: 0 0 0.35rem;
  padding: 0 0 0 0.55rem;
}

.app-sidebar-group.is-open .app-sidebar-subnav {
  display: grid;
  gap: 0.12rem;
}

.app-sidebar-subnav .nav-link {
  min-height: 46px;
}

.header .btn,
.header .app-notification-toggle,
.app-sidebar-toggle {
  min-height: 42px;
  border-radius: 10px !important;
  border: 1px solid var(--border-medium) !important;
  background: #fff !important;
  color: var(--text-main) !important;
  font-weight: 700;
  box-shadow: none !important;
}

.app-sidebar-toggle {
  width: 44px;
  height: 44px;
}

.badge.text-bg-success {
  background: #dff5e7 !important;
  color: #166534 !important;
  border: 1px solid #c3ead0;
}

.btn {
  border-radius: 4px !important;
  box-shadow: none !important;
  border: 1px solid transparent;
  cursor: pointer;
  line-height: 1.5;
  font-size: 13px;
  font-weight: 400;
  padding: 0.62rem 1rem;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.btn:hover,
.btn:focus,
.btn:active {
  box-shadow: none !important;
}

.btn-lg {
  padding: 0.7rem 1.2rem;
  font-size: 0.9375rem;
  border-radius: 60px !important;
}

.btn-sm {
  padding: 0.4rem 0.75rem;
  font-size: 0.82rem;
}

.btn-rounded {
  border-radius: 60px !important;
}

.btn-outline {
  color: #121212;
  background-color: transparent;
  border-color: #e5e5e5;
}

.btn-outline:hover,
.btn-outline:focus {
  color: #121212;
  background-color: #ffffff;
  border-color: #ffffff;
}

.btn-primary {
  border-radius: 50rem !important;
  background-color: #0f9f8f !important;
  border-color: #0f9f8f !important;
  color: #fff !important;
  box-shadow: 0 0.125rem 0.25rem rgba(15, 159, 143, 0.32);
  font-weight: 700;
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: #0b8579 !important;
  border-color: #0b8579 !important;
  color: #fff !important;
  box-shadow: 0 0.25rem 0.7rem rgba(15, 159, 143, 0.28);
  transform: translateY(-1px);
}

.btn-primary:active,
.btn-primary.active,
.show > .btn-primary.dropdown-toggle {
  background-color: #096f66 !important;
  border-color: #096f66 !important;
  color: #fff !important;
  box-shadow: 0 0.125rem 0.25rem rgba(15, 159, 143, 0.22);
  transform: translateY(0);
}

.btn-warning {
  background-color: #FF9149 !important;
  border-color: #FF9149 !important;
  color: #fff !important;
}

.btn-warning:hover,
.btn-warning:focus {
  background-color: #fbb264 !important;
  border-color: #fbb264 !important;
  color: #fff !important;
}

.btn-warning:active,
.btn-warning.active,
.show > .btn-warning.dropdown-toggle {
  background-color: #f99a32 !important;
  border-color: #f99a32 !important;
  color: #fff !important;
}

.btn-success {
  background-color: #28D094 !important;
  border-color: #28D094 !important;
  color: #fff !important;
}

.btn-success:hover,
.btn-success:focus {
  background-color: #33d8a0 !important;
  border-color: #33d8a0 !important;
  color: #fff !important;
}

.btn-success:active,
.btn-success.active,
.show > .btn-success.dropdown-toggle {
  background-color: #12a766 !important;
  border-color: #12a766 !important;
  color: #fff !important;
}

.btn-info {
  background-color: #1E9FF2 !important;
  border-color: #1E9FF2 !important;
  color: #fff !important;
}

.btn-info:hover,
.btn-info:focus {
  background-color: #2ba3f6 !important;
  border-color: #2ba3f6 !important;
  color: #fff !important;
}

.btn-info:active,
.btn-info.active,
.show > .btn-info.dropdown-toggle {
  background-color: #1785cd !important;
  border-color: #1785cd !important;
  color: #fff !important;
}

.btn-danger {
  background-color: #FF4961 !important;
  border-color: #FF4961 !important;
  color: #fff !important;
}

.btn-danger:hover,
.btn-danger:focus {
  background-color: #ff6a7e !important;
  border-color: #ff6a7e !important;
  color: #fff !important;
}

.btn-danger:active,
.btn-danger.active,
.show > .btn-danger.dropdown-toggle {
  background-color: #f84f4f !important;
  border-color: #f84f4f !important;
  color: #fff !important;
}

.btn-dark {
  background-color: #404E67 !important;
  border-color: #404E67 !important;
  color: #fff !important;
}

.btn-dark:hover,
.btn-dark:focus {
  background-color: #4f5e79 !important;
  border-color: #4f5e79 !important;
  color: #fff !important;
}

.btn-secondary {
  background-color: #828D99 !important;
  border-color: #828D99 !important;
  color: #fff !important;
}

.btn-secondary:hover,
.btn-secondary:focus {
  background-color: #919ba8 !important;
  border-color: #919ba8 !important;
  color: #fff !important;
}

.btn-light {
  background-color: #f8f9fa !important;
  border-color: #dfe4ea !important;
  color: #455a64 !important;
}

.btn-light:hover,
.btn-light:focus {
  background-color: #ffffff !important;
  border-color: #d8dee8 !important;
  color: #455a64 !important;
}

.btn-outline-primary {
  border-radius: 50rem !important;
  color: #0f9f8f !important;
  background-color: transparent !important;
  border-color: #0f9f8f !important;
  font-weight: 700;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
  color: #fff !important;
  background-color: #0f9f8f !important;
  border-color: #0f9f8f !important;
  box-shadow: 0 0.25rem 0.7rem rgba(15, 159, 143, 0.22);
  transform: translateY(-1px);
}

.btn-outline-warning {
  color: #FF9149 !important;
  background-color: transparent !important;
  border-color: #FF9149 !important;
}

.btn-outline-warning:hover,
.btn-outline-warning:focus {
  color: #fff !important;
  background-color: #FF9149 !important;
  border-color: #FF9149 !important;
}

.btn-outline-success {
  color: #28D094 !important;
  background-color: transparent !important;
  border-color: #28D094 !important;
}

.btn-outline-success:hover,
.btn-outline-success:focus {
  color: #fff !important;
  background-color: #28D094 !important;
  border-color: #28D094 !important;
}

.btn-outline-info {
  color: #1E9FF2 !important;
  background-color: transparent !important;
  border-color: #1E9FF2 !important;
}

.btn-outline-info:hover,
.btn-outline-info:focus {
  color: #fff !important;
  background-color: #1E9FF2 !important;
  border-color: #1E9FF2 !important;
}

.btn-outline-danger {
  color: #FF4961 !important;
  background-color: transparent !important;
  border-color: #FF4961 !important;
}

.btn-outline-danger:hover,
.btn-outline-danger:focus {
  color: #fff !important;
  background-color: #FF4961 !important;
  border-color: #FF4961 !important;
}

.btn-outline-secondary {
  color: #828D99 !important;
  background-color: transparent !important;
  border-color: #828D99 !important;
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus {
  color: #fff !important;
  background-color: #828D99 !important;
  border-color: #828D99 !important;
}

.btn-outline-dark {
  color: #404E67 !important;
  background-color: transparent !important;
  border-color: #404E67 !important;
}

.btn-outline-dark:hover,
.btn-outline-dark:focus {
  color: #fff !important;
  background-color: #404E67 !important;
  border-color: #404E67 !important;
}

.btn-outline-light {
  color: #ffffff !important;
  background-color: transparent !important;
  border-color: #ffffff !important;
}

.btn-outline-light:hover,
.btn-outline-light:focus {
  color: #262626 !important;
  background-color: #ffffff !important;
  border-color: #ffffff !important;
}

.badge.text-bg-warning {
  background: #fff4e8 !important;
  border-color: #ffd7bb !important;
  color: #9a3412 !important;
}

.card {
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  background: var(--panel-bg);
  box-shadow: var(--shadow-soft);
}

.card-header {
  min-height: 64px;
  padding: 1.1rem 1.35rem;
  border-bottom: 1px solid var(--border-soft);
  background: #fff;
  font-weight: 700;
}

.card-body {
  padding: 1.35rem;
}

.form-control,
.form-select,
textarea.form-control {
  min-height: 46px;
  border: 1px solid #d8dee8;
  border-radius: 10px;
  background: #fff;
  color: #111827;
  font-size: 13px;
  padding: 0.7rem 0.9rem;
  box-shadow: none;
}

textarea.form-control {
  min-height: 74px;
}

.form-control:focus,
.form-select:focus {
  border-color: #c2410c;
  box-shadow: 0 0 0 4px rgba(194, 65, 12, 0.1);
}

.app-notification-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.45rem;
  height: 2.45rem;
  padding: 0;
}

.app-notification-toggle svg {
  width: 1.15rem;
  height: 1.15rem;
  display: block;
}

.app-notification-badge {
  position: absolute;
  top: -0.32rem;
  right: -0.2rem;
  min-width: 1.15rem;
  height: 1.15rem;
  padding: 0 0.24rem;
  border-radius: 999px;
  background: #dc2626;
  color: #fff;
  font-size: 0.68rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 18px rgba(220, 38, 38, 0.35);
}

.app-notification-badge.is-hidden {
  display: none;
}

.app-notification-menu {
  width: min(430px, calc(100vw - 1.5rem));
  border-radius: 0.375rem;
  border: 1px solid rgba(0, 0, 0, 0.125);
  overflow: hidden;
  box-shadow: 0 0.5rem 1rem rgba(15, 23, 42, 0.15);
  right: 0;
  left: auto;
  padding: 0;
}

.app-notification-menu-title {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  background: #fff;
  color: #1f2937;
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration: none;
}

.app-notification-menu-header {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: 3.5rem;
  padding: 0.35rem 0.85rem;
  background: #fff;
}

.app-notification-menu-header form {
  flex: 0 0 auto;
  margin: 0;
}

.app-notification-read-all {
  min-height: 2.75rem;
  padding: 0.35rem 0.2rem;
  border: 0;
  background: transparent;
  color: #9a3412;
  font-size: 0.76rem;
  font-weight: 700;
  text-align: right;
}

.app-notification-read-all:hover,
.app-notification-read-all:focus-visible {
  color: #7c2d12;
  text-decoration: underline;
}

.app-notification-read-all:disabled {
  color: #9ca3af;
  cursor: default;
  text-decoration: none;
}

.app-notification-list {
  max-height: min(440px, calc(100dvh - 6rem));
  overflow-y: auto;
  background: #fff;
}

.app-notification-item {
  display: block;
  padding: 0.82rem 1rem;
  border-color: #e5e7eb !important;
  text-decoration: none;
  color: inherit;
  white-space: normal;
}

.app-notification-item.is-unread {
  background: #fff8f1;
}

.app-notification-item:hover {
  background: #f8fafc;
}

.app-notification-avatar {
  display: inline-flex;
  width: 2.8rem;
  height: 2.8rem;
  align-items: center;
  justify-content: center;
  border-radius: 0.375rem;
  background: linear-gradient(135deg, #fee2e2, #ffedd5);
  color: #9a3412;
  font-size: 0.95rem;
  font-weight: 700;
}

.app-notification-copy {
  min-width: 0;
  overflow-wrap: anywhere;
}

.app-notification-topline {
  min-width: 0;
}

.app-notification-title {
  min-width: 0;
  color: #1f2937;
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.app-notification-body {
  display: -webkit-box;
  max-width: 100%;
  color: #4b5563;
  font-size: 0.78rem;
  line-height: 1.35;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.app-notification-meta {
  flex: 0 0 auto;
  color: #6b7280;
  font-size: 0.7rem;
  white-space: nowrap;
}

.app-notification-empty {
  padding: 1rem;
  color: #64748b;
  text-align: center;
}

.app-notification-view-all {
  position: sticky;
  bottom: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 3rem;
  border-top: 1px solid #e5e7eb;
  background: #fff;
  color: #1f2937;
  font-size: 0.82rem;
  text-decoration: none;
}

.app-notification-view-icon {
  width: 0.95rem;
  height: 0.95rem;
  color: #9ca3af;
}

.notifications-page__actions {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.notifications-page__actions form {
  margin: 0;
}

.notifications-page__actions .app-tailadmin-light-btn {
  min-height: 2.75rem;
}

.notifications-page__actions button:disabled {
  opacity: 0.55;
}

.notifications-page__item {
  min-height: 4.75rem;
  padding: 1rem 1.25rem;
}

.notifications-page__item-layout {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 0.8rem;
}

.notifications-page__copy,
.notifications-page__title,
.notifications-page__body {
  min-width: 0;
  overflow-wrap: anywhere;
}

.notifications-page__topline {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.notifications-page__date {
  flex: 0 0 auto;
  white-space: nowrap;
}

.header .app-header-row > .app-header-right {
  margin-left: auto !important;
}

.header > .container-fluid {
  display: block !important;
  flex: 1 0 100% !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
}

@media (min-width: 992px) {
  .sidebar.sidebar-fixed {
    --cui-sidebar-width: var(--app-sidebar-width);
    width: var(--app-sidebar-width) !important;
    min-width: var(--app-sidebar-width) !important;
    max-width: var(--app-sidebar-width) !important;
    flex: 0 0 var(--app-sidebar-width) !important;
    transition: width 220ms ease, margin-left 220ms ease, transform 220ms ease;
  }
}

.dashboard-stat-link {
  display: block;
  transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
}

.dashboard-stat-link:hover,
.dashboard-stat-link:focus-visible {
  transform: translateY(-2px);
  filter: brightness(1.02);
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.14);
}

.dashboard-stat-link:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.95);
  outline-offset: 2px;
}

.app-sidebar-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid #cfd8e3;
  border-radius: 0.6rem;
  background: #fff;
  color: #111827;
}

.app-sidebar-toggle svg {
  width: 1.25rem;
  height: 1.25rem;
  display: block;
}

.app-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
}

.app-icon-btn svg {
  width: 1rem;
  height: 1rem;
  display: block;
}

.app-slow-loader {
  position: fixed;
  inset: 0;
  z-index: 3000;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(15, 23, 42, 0.28);
  backdrop-filter: blur(4px);
}

.app-slow-loader.is-visible {
  display: flex;
}

.app-slow-loader__card {
  display: grid;
  justify-items: center;
  gap: 1rem;
  min-width: 220px;
  padding: 1.4rem 1.5rem;
  border: 1px solid rgba(226, 232, 240, 0.95);
  border-radius: 1.2rem;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 24px 50px rgba(15, 23, 42, 0.18);
}

.app-slow-loader__label {
  font-weight: 700;
  color: #0f172a;
}

.loader-bars-pulse {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  height: 54px;
}

.loader-bars-pulse span {
  width: 10px;
  height: 20px;
  border-radius: 999px;
  background: #102a26;
  animation: bars-pulse 1s infinite ease-in-out;
}

.loader-bars-pulse span:nth-child(2) {
  animation-delay: 0.12s;
}

.loader-bars-pulse span:nth-child(3) {
  animation-delay: 0.24s;
}

.loader-bars-pulse span:nth-child(4) {
  animation-delay: 0.36s;
}

@keyframes bars-pulse {
  0%, 100% { transform: scaleY(0.4); opacity: 0.45; }
  50% { transform: scaleY(1.35); opacity: 1; }
}

.loader-dual {
  position: relative;
  width: 72px;
  height: 72px;
}

.loader-dual::before,
.loader-dual::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 999px;
  border: 4px solid transparent;
}

.loader-dual::before {
  border-top-color: #0f766e;
  border-right-color: #0f766e;
  animation: spin 0.9s linear infinite;
}

.loader-dual::after {
  inset: 12px;
  border-bottom-color: #1d4ed8;
  border-left-color: #1d4ed8;
  animation: spin-reverse 1.05s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@keyframes spin-reverse {
  to { transform: rotate(-360deg); }
}

.app-hero-secondary-btn {
  border-width: 2px;
  font-weight: 700;
}

.mobile-sidebar-backdrop {
  display: none;
}

.app-external-modal {
  position: fixed;
  inset: 0;
  z-index: 3200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(15, 23, 42, 0.36);
  backdrop-filter: blur(5px);
}

.app-external-modal[hidden] {
  display: none;
}

.app-external-modal__dialog {
  width: min(1100px, 100%);
  height: min(84vh, 920px);
  display: grid;
  grid-template-rows: auto 1fr auto;
  border-radius: 24px;
  border: 1px solid rgba(226, 232, 240, 0.95);
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 30px 80px rgba(15, 23, 42, 0.22);
  overflow: hidden;
}

.app-external-modal__dialog--sm {
  width: min(560px, 100%);
  height: min(70vh, 620px);
}

.app-external-modal__dialog--lg {
  width: min(980px, 100%);
}

.app-external-modal__dialog--xl {
  width: min(1280px, 100%);
}

.app-external-modal__dialog--fullscreen {
  width: min(1440px, 100%);
  height: min(92vh, 1080px);
}

.app-external-modal__header,
.app-external-modal__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.2rem;
  background: #fff;
}

.app-external-modal__eyebrow {
  margin-bottom: 0.25rem;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #c2410c;
}

.app-external-modal__title {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 700;
  color: #0f172a;
}

.app-external-modal__body {
  min-height: 0;
  background: #f8fafc;
}

.app-external-modal__frame {
  width: 100%;
  height: 100%;
  border: 0;
  background: #fff;
}

#pwaInstallButton[hidden] {
  display: none !important;
}

@media (display-mode: standalone) {
  #pwaInstallButton {
    display: none !important;
  }
}

.app-hero {
  padding: 2rem;
  border-radius: 1.25rem;
  background:
    radial-gradient(circle at top left, rgba(255,255,255,.18), transparent 35%),
    linear-gradient(135deg, #1e3c72 0%, #2a5298 50%, #1f8a70 100%);
  color: #fff;
}

.app-eyebrow {
  display: inline-block;
  margin-bottom: 0.75rem;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.sidebar .sidebar-nav,
.sidebar .simplebar-content,
.sidebar .simplebar-content-wrapper,
.sidebar .simplebar-mask,
.sidebar .simplebar-offset {
  width: 100%;
}

.pp-intake-page {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at top left, rgba(255, 235, 205, 0.72), transparent 24%),
    radial-gradient(circle at bottom right, rgba(236, 114, 56, 0.12), transparent 24%),
    #f6efe4;
  color: #171717;
  font-family: var(--font-main);
}

.pp-intake-layout {
  max-width: 1460px;
  margin: 0 auto;
  padding: 28px 24px 40px;
}

.pp-intake-main {
  border-radius: 34px;
  background: #fffdfa;
  box-shadow: 0 35px 70px rgba(66, 36, 16, 0.18);
  padding: 24px 24px 32px;
}

.pp-page-hero {
  display: grid;
  grid-template-columns: 180px 1fr;
  align-items: start;
  gap: 24px;
  padding: 8px 8px 22px;
}

.pp-page-hero--single {
  padding-top: 8px;
}

.pp-brand-block img {
  width: 116px;
  height: auto;
  display: block;
}

.pp-title-block {
  display: grid;
  justify-items: center;
  text-align: center;
  gap: 14px;
}

.pp-title-block__secure {
  justify-self: end;
  width: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 12px;
  color: #18181b;
}

.pp-title-block__secure svg {
  width: 28px;
  height: 28px;
  color: #121212;
  flex: 0 0 auto;
}

.pp-title-block__secure div {
  display: grid;
  justify-items: start;
  gap: 2px;
  text-align: left;
}

.pp-title-block__secure strong {
  font-size: 1.42rem;
  font-weight: 700;
}

.pp-title-block__secure span {
  font-size: 0.98rem;
  line-height: 1.35;
  color: #52525b;
}

.pp-title-block h1 {
  margin: 0;
  font-size: clamp(2.2rem, 2.6vw, 3.25rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: #101010;
}

.pp-title-block p {
  margin: 0;
  font-size: 1.13rem;
  line-height: 1.6;
  color: #44403c;
}

.pp-trust-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 24px;
  font-size: 0.98rem;
  font-weight: 700;
  color: #1f1f1f;
}

.pp-trust-row span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.pp-trust-row svg {
  width: 18px;
  height: 18px;
  color: #c23221;
}

.pp-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 24px;
  align-items: start;
}

.pp-pizza-picker {
  display: grid;
  gap: 12px;
}

.pp-pizza-picker__button {
  min-height: 52px;
  border-radius: 12px;
  border: 1px dashed #cf3a24;
  background: #fff6f2;
  color: #b22d1f;
  font-weight: 700;
}

.pp-pizza-picker__button:hover {
  background: #fff1eb;
  border-color: #b82d1b;
}

.pp-pizza-picker__summary {
  min-height: 52px;
  display: flex;
  align-items: center;
  padding: 0.85rem 1rem;
  border: 1px solid #ece3d5;
  border-radius: 12px;
  background: #fff;
  color: #51473d;
  line-height: 1.5;
}

.pp-form-shell {
  display: grid;
  gap: 16px;
}

.pp-form-section {
  padding: 18px 18px 20px;
  border: 1px solid #eee6da;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(68, 44, 25, 0.05);
}

.pp-form-section--soft {
  background: linear-gradient(180deg, #fffaf2 0%, #fff 100%);
}

.pp-form-section__header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.pp-step-badge {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #c63220;
  color: #fff;
  font-size: 0.92rem;
  font-weight: 700;
}

.pp-section-icon {
  display: inline-flex;
  color: #111827;
}

.pp-section-icon svg {
  width: 18px;
  height: 18px;
}

.pp-form-section__header h2 {
  margin: 0;
  font-size: 1.34rem;
  font-weight: 700;
  color: #111;
  letter-spacing: -0.02em;
}

.pp-intake-page .form-label {
  margin-bottom: 0.5rem;
  font-size: 0.97rem;
  font-weight: 700;
  color: #191919;
}

.pp-intake-page .form-label span {
  color: #cf3a24;
}

.pp-intake-page .form-control,
.pp-intake-page .form-select {
  min-height: 52px;
  border: 1px solid #e5dcca;
  border-radius: 12px;
  background: #fff;
  box-shadow: none;
  font-size: 0.98rem;
  color: #171717;
}

.pp-intake-page textarea.form-control {
  min-height: 112px;
  padding-top: 0.9rem;
}

.pp-intake-page .form-control:focus,
.pp-intake-page .form-select:focus {
  border-color: #cf3a24;
  box-shadow: 0 0 0 4px rgba(207, 58, 36, 0.12);
}

.pp-field-errors {
  margin-top: 0.5rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: #c62828;
}

.pp-form-submit {
  display: grid;
  justify-items: center;
  gap: 14px;
  padding: 10px 8px 0;
}

.pp-submit-btn {
  width: 100%;
  min-height: 58px;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(180deg, #d53b27 0%, #b62817 100%);
  color: #fff;
  font-size: 1.08rem;
  font-weight: 700;
  box-shadow: 0 18px 32px rgba(182, 40, 23, 0.18);
  transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;
}

.pp-submit-btn:hover {
  transform: translateY(-1px);
  filter: brightness(1.01);
  box-shadow: 0 22px 38px rgba(182, 40, 23, 0.22);
}

.pp-submit-footnote {
  display: grid;
  gap: 2px;
  justify-items: center;
  text-align: center;
  font-size: 0.92rem;
  line-height: 1.55;
  color: #5b5249;
}

.pp-submit-footnote span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.pp-submit-footnote svg {
  width: 15px;
  height: 15px;
}

.pp-side-column {
  display: grid;
  gap: 16px;
}

.pp-side-card {
  border: 1px solid #efe5d9;
  border-radius: 18px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 14px 28px rgba(77, 46, 18, 0.06);
}

.pp-side-card--visual img {
  width: 100%;
  height: 190px;
  object-fit: cover;
  display: block;
}

.pp-side-card__body {
  padding: 18px 16px 18px;
}

.pp-side-card__body h3 {
  margin: 0 0 10px;
  font-size: 1.35rem;
  font-weight: 700;
  color: #b62b1a;
}

.pp-side-card__body p {
  margin: 0 0 16px;
  color: #433a31;
  line-height: 1.6;
}

.pp-feature-list {
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pp-feature-list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  color: #211f1e;
  line-height: 1.5;
}

.pp-feature-list svg {
  width: 18px;
  height: 18px;
  margin-top: 1px;
  color: #c63725;
  flex: 0 0 auto;
}

.pp-side-card--contact {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: start;
  padding: 20px 18px;
  background: linear-gradient(180deg, #fff8ea 0%, #fff4de 100%);
}

.pp-side-card__contact-icon {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid #ddc6a7;
  color: #2a2218;
  font-weight: 700;
}

.pp-side-card--contact h4 {
  margin: 0 0 4px;
  font-size: 1.28rem;
  font-weight: 700;
}

.pp-side-card--contact p {
  margin: 0 0 10px;
  color: #51463c;
}

.pp-side-card--contact a {
  color: #171717;
  text-decoration: none;
  font-size: 1.18rem;
  font-weight: 700;
}

.pp-modal-open {
  overflow: hidden;
}

.pp-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 4000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(23, 23, 23, 0.52);
  backdrop-filter: blur(6px);
}

.pp-modal-card {
  width: min(1080px, calc(100vw - 2rem));
  max-height: calc(100vh - 2rem);
  overflow: auto;
  border-radius: 24px;
  border: 1px solid #eadfce;
  background: #fffdfa;
  box-shadow: 0 32px 70px rgba(30, 17, 7, 0.24);
}

.pp-modal-header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: start;
  padding: 24px 24px 18px;
}

.pp-modal-eyebrow {
  margin-bottom: 0.4rem;
  color: #b52d1e;
  font-size: 0.84rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.pp-modal-header h3 {
  margin: 0;
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: -0.03em;
}

.pp-modal-close {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #e6dac8;
  border-radius: 999px;
  background: #fff;
  color: #161616;
}

.pp-modal-close svg {
  width: 16px;
  height: 16px;
}

.pp-modal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  padding: 0 24px 18px;
}

.pp-pizza-card {
  position: relative;
  display: grid;
  grid-template-columns: 180px 1fr;
  border: 1px solid #e7ddcf;
  border-radius: 20px;
  overflow: hidden;
  background: #fff;
  cursor: pointer;
  transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.pp-pizza-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 18px 36px rgba(77, 46, 18, 0.10);
}

.pp-pizza-card input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.pp-pizza-card.is-selected {
  border-color: #c83221;
  box-shadow: 0 0 0 3px rgba(200, 50, 33, 0.10);
}

.pp-pizza-card__image {
  background: linear-gradient(180deg, #f8efe4 0%, #f1dfc7 100%);
}

.pp-pizza-card__image img {
  width: 100%;
  height: 100%;
  min-height: 180px;
  object-fit: cover;
  display: block;
}

.pp-pizza-card__body {
  padding: 16px 16px 14px;
}

.pp-pizza-card__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.pp-pizza-card__top h4 {
  margin: 0;
  font-size: 1.22rem;
  font-weight: 700;
}

.pp-pizza-card__check {
  width: 22px;
  height: 22px;
  border: 2px solid #decfbb;
  border-radius: 999px;
  background: #fff;
  transition: all 160ms ease;
}

.pp-pizza-card.is-selected .pp-pizza-card__check {
  border-color: #c83221;
  background: radial-gradient(circle at center, #c83221 0 48%, transparent 50%);
}

.pp-pizza-card__body p {
  margin: 0 0 10px;
  color: #4f463f;
  line-height: 1.55;
}

.pp-pizza-card__meta {
  color: #2d2b28;
  font-size: 0.92rem;
  line-height: 1.5;
}

.pp-pizza-card__meta + .pp-pizza-card__meta {
  margin-top: 6px;
}

.pp-modal-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 18px 24px 24px;
  border-top: 1px solid #efe4d5;
}

.pp-modal-helper {
  color: #61564d;
  line-height: 1.5;
}

.pp-modal-actions {
  display: flex;
  gap: 12px;
}

.pp-public-center-page {
  overflow: hidden;
}

.pp-public-center-shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
}

.pp-public-center-card {
  width: min(860px, 100%);
  display: grid;
  justify-items: center;
  gap: 22px;
  padding: 48px 40px;
  border: 1px solid #eee3d5;
  border-radius: 32px;
  background: #fffdfa;
  box-shadow: 0 35px 70px rgba(66, 36, 16, 0.18);
  text-align: center;
}

.pp-brand-block--centered {
  display: flex;
  justify-content: center;
}

.pp-public-status-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0.45rem 1rem;
  border: 1px solid #e7d9c6;
  border-radius: 999px;
  background: #fff7ec;
  color: #1f1f1f;
  font-size: 0.92rem;
  font-weight: 700;
}

.pp-public-center-card h1 {
  margin: 0;
  font-size: clamp(2.2rem, 3vw, 3.35rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.03em;
}

.pp-public-center-card p {
  margin: 0;
  max-width: 680px;
  color: #4f463f;
  font-size: 1.08rem;
  line-height: 1.75;
}

.pp-public-center-card__closing {
  font-weight: 700;
  color: #201b18;
}

.pp-page-hero--proposal {
  gap: 28px;
}

.pp-content-grid--proposal {
  align-items: start;
}

.pp-proposal-shell {
  gap: 18px;
}

.pp-proposal-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.pp-proposal-summary-item {
  display: grid;
  gap: 6px;
  padding: 16px;
  border: 1px solid #ece2d3;
  border-radius: 16px;
  background: #fffdfa;
}

.pp-proposal-summary-item strong {
  font-size: 0.92rem;
  font-weight: 700;
  color: #a22d1d;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.pp-proposal-summary-item span {
  color: #2a2521;
  font-weight: 700;
  line-height: 1.5;
}

.pp-proposal-list {
  display: grid;
  gap: 18px;
}

.pp-commercial-flow-section {
  gap: 18px;
}

.pp-commercial-flow {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.pp-commercial-flow__step {
  position: relative;
  display: grid;
  align-content: start;
  gap: 8px;
  min-height: 158px;
  padding: 14px;
  border: 1px solid #eee1d0;
  border-radius: 16px;
  background: #fffdfa;
}

.pp-commercial-flow__step span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: #fff1ea;
  color: #b62b1a;
  font-size: 0.9rem;
  font-weight: 700;
}

.pp-commercial-flow__step strong {
  color: #1b1b1b;
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1.25;
}

.pp-commercial-flow__step small {
  color: #5f5148;
  font-size: 0.86rem;
  line-height: 1.45;
}

.pp-commercial-flow__step.is-current {
  border-color: #e7b692;
  background: linear-gradient(180deg, #fff8f0 0%, #fffdfa 100%);
  box-shadow: inset 0 0 0 1px rgba(182, 43, 26, 0.06);
}

.pp-commercial-flow__step.is-current span {
  background: #b62b1a;
  color: #fff;
}

.pp-commercial-flow-note {
  padding: 14px 16px;
  border: 1px solid #eadfce;
  border-radius: 16px;
  background: #fff8f0;
  color: #4f463f;
  line-height: 1.6;
}

.pp-commercial-flow-note strong {
  color: #1b1b1b;
}

.pp-proposal-card {
  gap: 18px;
}

.pp-proposal-card__head {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 18px;
}

.pp-proposal-card__head h2 {
  margin: 12px 0 10px;
  font-size: 1.65rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: #111;
}

.pp-proposal-card__head p {
  margin: 0;
  color: #4f463f;
  line-height: 1.7;
}

.pp-proposal-tier {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  background: #fff1ea;
  color: #b62b1a;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.pp-proposal-price {
  min-width: 180px;
  padding: 0.95rem 1rem;
  border-radius: 18px;
  background: linear-gradient(180deg, #fff7ee 0%, #fff1e4 100%);
  color: #111;
  font-size: 1.5rem;
  font-weight: 700;
  text-align: center;
  box-shadow: inset 0 0 0 1px #efdcc8;
}

.pp-proposal-points {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.pp-proposal-point {
  display: grid;
  gap: 6px;
  padding: 16px;
  border-radius: 16px;
  background: #fff8f0;
  border: 1px solid #eee1d0;
}

.pp-proposal-point strong {
  color: #1b1b1b;
  font-size: 0.98rem;
  font-weight: 700;
}

.pp-proposal-point span {
  color: #4f463f;
  line-height: 1.6;
}

.pp-proposal-actions {
  display: flex;
  justify-content: flex-start;
}

.pp-submit-btn--success {
  background: linear-gradient(180deg, #159a58 0%, #0f7a45 100%);
  box-shadow: 0 18px 32px rgba(15, 122, 69, 0.18);
}

.pp-side-card--proposal {
  background: linear-gradient(180deg, #fffdf9 0%, #fff5e8 100%);
}

.pp-public-empty-state {
  padding-top: 12px;
}

.pp-public-empty-state__card {
  width: min(820px, 100%);
  margin: 0 auto;
  padding: 42px 28px;
  border: 1px solid #eee3d5;
  border-radius: 28px;
  background: #fffdfa;
  box-shadow: 0 20px 44px rgba(66, 36, 16, 0.10);
  text-align: center;
}

.pp-public-empty-state__card h2 {
  margin: 0 0 12px;
  font-size: clamp(1.8rem, 2.4vw, 2.4rem);
  font-weight: 700;
  letter-spacing: -0.03em;
}

.pp-public-empty-state__card p {
  margin: 0;
  color: #4f463f;
  line-height: 1.7;
}

.pp-dialog-card {
  border-radius: 24px;
  border: 1px solid #eadfce;
  background: #fffdfa;
  box-shadow: 0 32px 70px rgba(30, 17, 7, 0.24);
}

.pp-public-loader {
  position: fixed;
  inset: 0;
  z-index: 5000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(15, 23, 42, 0.36);
  backdrop-filter: blur(5px);
}

.pp-public-loader.is-visible {
  display: flex;
}

.pp-public-loader__card {
  min-width: min(420px, calc(100vw - 2rem));
  display: grid;
  justify-items: center;
  gap: 16px;
  padding: 28px 24px;
  border-radius: 24px;
  border: 1px solid #eadfce;
  background: #fffdfa;
  box-shadow: 0 24px 60px rgba(30, 17, 7, 0.22);
  text-align: center;
}

.pp-public-loader__label {
  color: #201b18;
  font-size: 1rem;
  font-weight: 700;
}

.pp-variety-shell {
  width: min(980px, 100%);
  margin: 0 auto;
}

.pp-variety-form {
  display: grid;
  gap: 1rem;
}

.pp-variety-section {
  display: grid;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid #eadfce;
  border-radius: 8px;
  background: #fffdfa;
  box-shadow: 0 12px 28px rgba(66, 36, 16, 0.08);
}

.pp-variety-section__head {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.pp-variety-section__head h2 {
  margin: 0;
  color: #1b1b1b;
  font-size: 1.15rem;
  font-weight: 700;
}

.pp-variety-section__head p {
  margin: 0.25rem 0 0;
  color: #61564d;
  font-size: 0.9rem;
  line-height: 1.5;
}

.pp-variety-quantity-row {
  display: grid;
  gap: 0.5rem;
}

.pp-variety-quantity-row label {
  color: #2a2521;
  font-weight: 700;
}

.pp-variety-quantity-row input {
  min-height: 48px;
  font-size: 1rem;
}

.pp-variety-recommendation {
  display: grid;
  gap: 0.75rem;
  padding: 0.875rem;
  border: 1px solid #f0c36a;
  border-radius: 8px;
  background: #fff8df;
}

.pp-variety-recommendation[hidden] {
  display: none;
}

.pp-variety-recommendation div {
  display: grid;
  gap: 0.2rem;
}

.pp-variety-recommendation strong {
  color: #5e4308;
}

.pp-variety-recommendation span {
  color: #6b5522;
  font-size: 0.9rem;
}

.pp-variety-recommendation button {
  min-height: 44px;
}

.pp-variety-rule-status,
.pp-variety-selection-status {
  min-height: 44px;
  padding: 0.75rem 0.875rem;
  border-radius: 8px;
  background: #f7f2eb;
  color: #4f463f;
  font-weight: 700;
  line-height: 1.45;
}

.pp-variety-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
}

.pp-variety-option {
  position: relative;
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr) 2rem;
  align-items: center;
  min-height: 6.5rem;
  overflow: hidden;
  border: 2px solid #e7dccd;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.pp-variety-option:focus-within {
  outline: 3px solid rgba(182, 43, 26, 0.22);
  outline-offset: 2px;
}

.pp-variety-option:has(input:checked) {
  border-color: #0f8a63;
  background: #f3fbf7;
  box-shadow: 0 8px 20px rgba(15, 138, 99, 0.12);
}

.pp-variety-option input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.pp-variety-option__media {
  width: 100%;
  height: 100%;
  min-height: 6.5rem;
  background: #f1e9df;
}

.pp-variety-option__media img {
  width: 100%;
  height: 100%;
  min-height: 6.5rem;
  object-fit: cover;
}

.pp-variety-option__body {
  display: grid;
  gap: 0.3rem;
  min-width: 0;
  padding: 0.75rem;
}

.pp-variety-option__body strong {
  color: #1b1b1b;
  font-size: 1rem;
}

.pp-variety-option__body small {
  color: #61564d;
  font-size: 0.82rem;
  line-height: 1.4;
}

.pp-variety-option__check {
  display: grid;
  place-items: center;
  width: 1.75rem;
  height: 1.75rem;
  margin-right: 0.5rem;
  border: 2px solid #cfc3b5;
  border-radius: 50%;
  color: transparent;
  font-weight: 700;
}

.pp-variety-option:has(input:checked) .pp-variety-option__check {
  border-color: #0f8a63;
  background: #0f8a63;
  color: #fff;
}

.pp-variety-submit {
  position: sticky;
  bottom: 0.75rem;
  z-index: 20;
  padding: 0.75rem;
  border: 1px solid #eadfce;
  border-radius: 8px;
  background: rgba(255, 253, 250, 0.96);
  box-shadow: 0 12px 30px rgba(46, 27, 12, 0.16);
}

.pp-variety-submit .pp-submit-btn {
  width: 100%;
  min-height: 48px;
}

.pp-variety-submit .pp-submit-btn:disabled {
  cursor: not-allowed;
  opacity: 0.5;
  box-shadow: none;
}

.pp-variety-success,
.pp-variety-errors {
  display: grid;
  gap: 0.5rem;
  margin-bottom: 1rem;
  padding: 1rem;
  border-radius: 8px;
}

.pp-variety-success {
  border: 1px solid #8ed4b7;
  background: #eefaf4;
  color: #155b43;
}

.pp-variety-errors {
  border: 1px solid #efaaa2;
  background: #fff2f0;
  color: #8f251b;
}

.pp-variety-errors ul {
  margin: 0;
  padding-left: 1.2rem;
}

@media (min-width: 768px) {
  .pp-variety-section {
    gap: 1.25rem;
    padding: 1.5rem;
  }

  .pp-variety-quantity-row {
    grid-template-columns: minmax(12rem, 0.45fr) minmax(12rem, 0.55fr);
    align-items: center;
  }

  .pp-variety-recommendation {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  .pp-variety-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pp-variety-submit {
    display: flex;
    justify-content: flex-end;
  }

  .pp-variety-submit .pp-submit-btn {
    width: auto;
    min-width: 18rem;
  }
}

@media (max-width: 1460px) {
  .pp-content-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 1100px) {
  .pp-page-hero {
    grid-template-columns: 1fr;
  }

  .pp-title-block__secure {
    justify-self: center;
    justify-content: center;
  }

  .pp-side-column {
    grid-template-columns: 1fr 1fr;
  }

  .pp-modal-grid {
    grid-template-columns: 1fr;
  }

  .pp-proposal-price {
    min-width: 150px;
  }
}

@media (max-width: 768px) {
  .pp-intake-layout {
    padding: 14px 12px 28px;
  }

  .pp-intake-main {
    padding: 8px 0 24px;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .pp-page-hero {
    gap: 18px;
    padding: 8px 4px 18px;
  }

  .pp-brand-block {
    display: flex;
    justify-content: center;
  }

  .pp-brand-block img {
    width: 120px;
  }

  .pp-title-block {
    gap: 12px;
  }

  .pp-title-block h1 {
    font-size: 2.1rem;
  }

  .pp-title-block p {
    font-size: 1rem;
  }

  .pp-title-block__secure {
    width: auto;
    justify-content: center;
  }

  .pp-trust-row {
    gap: 14px;
    font-size: 0.9rem;
  }

  .pp-content-grid,
  .pp-side-column {
    grid-template-columns: 1fr;
  }

  .pp-form-section {
    padding: 16px 14px 18px;
    border-radius: 16px;
  }

  .pp-form-section__header h2 {
    font-size: 1.08rem;
  }

  .pp-side-column {
    order: 2;
  }

  .pp-modal-backdrop {
    padding: 12px;
  }

  .pp-modal-card {
    width: 100%;
    max-height: calc(100vh - 1rem);
    border-radius: 20px;
  }

  .pp-modal-header,
  .pp-modal-grid,
  .pp-modal-footer {
    padding-left: 16px;
    padding-right: 16px;
  }

  .pp-pizza-card {
    grid-template-columns: 1fr;
  }

  .pp-pizza-card__image img {
    min-height: 170px;
  }

  .pp-modal-footer {
    flex-direction: column;
    align-items: stretch;
  }

  .pp-modal-actions {
    width: 100%;
    flex-direction: column;
  }

  .pp-public-center-shell {
    padding: 16px;
  }

  .pp-public-center-card {
    padding: 32px 22px;
    border-radius: 24px;
    gap: 16px;
  }

  .pp-public-center-card p {
    font-size: 1rem;
  }

  .pp-proposal-summary-grid,
  .pp-proposal-points,
  .pp-commercial-flow {
    grid-template-columns: 1fr;
  }

  .pp-commercial-flow__step {
    min-height: 0;
  }

  .pp-proposal-card__head {
    flex-direction: column;
  }

  .pp-proposal-price {
    width: 100%;
    min-width: 0;
  }

  .lead-context-header__title {
    font-size: 2.2rem;
  }

  .lead-context-header__meta {
    font-size: 1rem;
  }

  .lead-summary-card__body {
    min-height: 0;
  }

  .lead-management-steps {
    grid-template-columns: 1fr;
  }

  .lead-management-step {
    grid-template-columns: auto 1fr;
    align-items: center;
  }

  .lead-followup-item {
    flex-direction: column;
    align-items: stretch;
  }

  .lead-stage-card__actions {
    grid-template-columns: 1fr;
  }

  .app-external-modal {
    padding: 12px;
  }

  .app-external-modal__dialog {
    height: min(92vh, 920px);
    border-radius: 20px;
  }

  .app-external-modal__header,
  .app-external-modal__footer {
    padding: 0.9rem 1rem;
  }

  .app-external-modal__footer {
    flex-direction: column;
    align-items: stretch;
  }
}

.sidebar .sidebar-nav {
  padding: 0.45rem 0.6rem 1rem;
  transition: padding 220ms ease;
}

.sidebar .nav-title {
  margin: 0.9rem 0 0.45rem;
  padding: 0 0.5rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: normal;
  transition: opacity 180ms ease, transform 220ms ease, max-height 220ms ease, margin 220ms ease;
}

.sidebar .nav-item {
  width: 100%;
}

.sidebar .nav-link {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  width: 100%;
  margin: 0;
  padding: 0.7rem 0.75rem;
  border-radius: 0.8rem;
  font-size: 0.92rem;
  line-height: 1.3;
  white-space: normal;
  word-break: break-word;
  overflow: hidden;
  transition: padding 220ms ease, gap 220ms ease, background-color 160ms ease, color 160ms ease;
}

.sidebar .nav-link:hover,
.sidebar .nav-link:focus-visible {
  background: rgba(255, 255, 255, 0.06);
}

.app-sidebar-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 1.2rem;
  width: 1.2rem;
  height: 1.2rem;
  color: rgba(255, 255, 255, 0.92);
}

.app-sidebar-icon svg {
  width: 1.15rem;
  height: 1.15rem;
  display: block;
}

.app-sidebar-label {
  min-width: 0;
  transition: opacity 150ms ease, transform 220ms ease, max-width 220ms ease;
}

.app-dialog {
  width: min(520px, calc(100vw - 1rem));
  padding: 0;
  border: 0;
  border-radius: 1rem;
  background: transparent;
  overflow: visible;
}

.app-dialog::backdrop {
  background: rgba(156, 163, 175, 0.5);
  backdrop-filter: blur(32px);
}

.app-dialog-card {
  position: relative;
  width: 100%;
  padding: 1rem;
  border: 0;
  border-radius: 1rem;
  background: #fff;
  box-shadow: none;
}

.app-dialog-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
  padding-right: 2rem;
}

.app-dialog-header h3 {
  margin-bottom: 0.125rem;
  color: #1f2937;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.35;
}

.app-dialog-header .text-body-secondary {
  color: #6b7280 !important;
  font-size: 0.78rem;
  line-height: 1.35;
}

.app-dialog .btn-close:not([data-coreui-dismiss]) {
  position: absolute;
  top: 0.625rem;
  right: 0.625rem;
  z-index: 10;
  width: 1.25rem;
  height: 1.25rem;
  padding: 0;
  border-radius: 999px;
  background-color: #f3f4f6;
  background-size: 0.625rem;
  color: #9ca3af;
  opacity: 1;
  transition: background-color 160ms ease, color 160ms ease, opacity 160ms ease;
}

.app-dialog .btn-close:not([data-coreui-dismiss]):hover,
.app-dialog .btn-close:not([data-coreui-dismiss]):focus-visible {
  background-color: #e5e7eb;
  color: #374151;
  opacity: 1;
  box-shadow: none;
}

.app-dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: 0.85rem;
  flex-wrap: wrap;
}

.app-dialog .row {
  --bs-gutter-x: 0.85rem;
  --bs-gutter-y: 0.75rem;
}

.app-dialog .form-label {
  margin-bottom: 0.25rem;
  color: #374151;
  font-size: 0.8rem;
  font-weight: 500;
}

.app-dialog .form-control,
.app-dialog .form-select {
  min-height: 2.35rem;
  border-color: #d1d5db;
  border-radius: 0.5rem;
  background-color: transparent;
  color: #1f2937;
  font-size: 0.82rem;
  padding-top: 0.45rem;
  padding-bottom: 0.45rem;
  box-shadow: 0 1px 2px 0 rgba(16, 24, 40, 0.05);
}

.app-dialog textarea.form-control {
  min-height: 4.75rem;
}

.app-dialog .form-control::placeholder {
  color: #9ca3af;
}

.app-dialog .form-control:focus,
.app-dialog .form-select:focus {
  border-color: #9cb9ff;
  box-shadow: 0 0 0 3px rgba(70, 95, 255, 0.12);
}

.app-dialog-actions .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  gap: 0.5rem;
  border-radius: 0.5rem;
  padding: 0.5rem 0.8rem;
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.25;
  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.app-dialog-actions .btn-outline-secondary {
  border-color: #cbd5e1;
  background: #f8fafc;
  color: #475569;
}

.app-dialog-actions .btn-outline-secondary:hover,
.app-dialog-actions .btn-outline-secondary:focus-visible {
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #1d4ed8;
  box-shadow: 0 0.125rem 0.25rem 0 rgba(147, 197, 253, 0.28);
  transform: translateY(-1px);
}

.app-dialog-actions .btn-primary {
  border-color: #99f6e4;
  background: #ccfbf1;
  color: #0f766e;
  box-shadow: 0 0.125rem 0.25rem 0 rgba(15, 159, 143, 0.2);
}

.app-dialog-actions .btn-primary:hover,
.app-dialog-actions .btn-primary:focus-visible {
  border-color: #5eead4;
  background: #99f6e4;
  color: #115e59;
  transform: translateY(-1px);
}

.app-dialog-actions .btn-danger {
  border-color: #fecaca;
  background: #fee2e2;
  color: #b91c1c;
  box-shadow: 0 0.125rem 0.25rem 0 rgba(252, 165, 165, 0.25);
}

.app-dialog-actions .btn-danger:hover,
.app-dialog-actions .btn-danger:focus-visible {
  border-color: #fca5a5;
  background: #fecaca;
  color: #991b1b;
  transform: translateY(-1px);
}

.app-dialog-actions .btn-outline-danger {
  border-color: #fecaca;
  background: #fff1f2;
  color: #be123c;
}

.app-dialog-actions .btn-outline-danger:hover,
.app-dialog-actions .btn-outline-danger:focus-visible {
  border-color: #fda4af;
  background: #ffe4e6;
  color: #9f1239;
  box-shadow: 0 0.125rem 0.25rem 0 rgba(251, 113, 133, 0.24);
  transform: translateY(-1px);
}

.app-dialog-actions .btn-outline-success,
.app-dialog-actions .btn-success {
  border-color: #bbf7d0;
  background: #dcfce7;
  color: #15803d;
  box-shadow: 0 0.125rem 0.25rem 0 rgba(134, 239, 172, 0.22);
}

.app-dialog-actions .btn-outline-success:hover,
.app-dialog-actions .btn-outline-success:focus-visible,
.app-dialog-actions .btn-success:hover,
.app-dialog-actions .btn-success:focus-visible {
  border-color: #86efac;
  background: #bbf7d0;
  color: #166534;
  transform: translateY(-1px);
}

@media (min-width: 640px) {
  .app-dialog-card {
    padding: 1.35rem;
  }

  .app-dialog .btn-close:not([data-coreui-dismiss]) {
    top: 0.85rem;
    right: 0.85rem;
  }
}


.app-module-launchers {
  display: grid;
  gap: 0.75rem;
}

.app-module-launchers .btn {
  justify-content: flex-start;
  text-align: left;
  white-space: normal;
  font-weight: 700;
}


.app-event-nav-modal-row .btn {
  border-radius: 999px;
  font-weight: 700;
  background: #fff;
}

.app-embedded-body {
  background: #f3f4f6;
}

.app-embedded-shell {
  min-height: 100vh;
}

.app-embedded-page {
  max-width: 1440px;
}

.app-embedded-page .card:first-child,
.app-embedded-page .app-page-hero:first-child {
  margin-top: 0 !important;
}


.app-embedded-module-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid #dbe4f0;
  border-radius: 1rem;
  background:
    radial-gradient(circle at top right, rgba(30, 60, 114, 0.08), transparent 30%),
    linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05);
}

.app-embedded-module-header__copy {
  min-width: 0;
}

.app-embedded-module-header__eyebrow {
  margin-bottom: 0.35rem;
  color: #b45309;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.app-embedded-module-header__title {
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 700;
  color: #0f172a;
}

.app-embedded-module-header__subtitle {
  margin: 0.4rem 0 0;
  color: #475569;
  line-height: 1.5;
}

.app-embedded-module-header__actions {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

@media (max-width: 767.98px) {
  .app-embedded-module-header {
    flex-direction: column;
    align-items: stretch;
  }

  .app-embedded-module-header__actions {
    justify-content: flex-start;
  }
}

.app-modal-shell {
  position: fixed;
  inset: 0;
  z-index: 2200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: rgba(15, 23, 42, 0.48);
  backdrop-filter: blur(4px);
}

.app-modal-shell[hidden] {
  display: none !important;
}

body.app-modal-open {
  overflow: hidden;
}

.lead-date-warning {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  margin-left: 0.4rem;
  border-radius: 999px;
  background: #facc15;
  color: #111827;
  font-size: 0.8rem;
  font-weight: 700;
  vertical-align: middle;
}

.commercial-calendar-card .card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.commercial-calendar-meta {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.commercial-calendar-chip {
  padding: 0.5rem 0.85rem;
  border: 1px solid #dbeafe;
  border-radius: 999px;
  background: #f8fbff;
  color: #0f172a;
  font-weight: 600;
}

.commercial-calendar-chip--proposed {
  border-color: #fcd34d;
  background: #fffbeb;
  color: #92400e;
}

.commercial-calendar-chip--confirmed {
  border-color: #93c5fd;
  background: #eff6ff;
  color: #1d4ed8;
}

.commercial-calendar-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.8fr);
  gap: 1rem;
}

.commercial-calendar-stage {
  min-height: 720px;
  padding: 1rem;
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

.commercial-calendar-side {
  display: grid;
  gap: 1rem;
  align-content: start;
}

.commercial-unscheduled-card {
  padding: 1rem;
  border: 1px solid #fde68a;
  border-radius: 1rem;
  background: linear-gradient(180deg, #fffdf3 0%, #fff7d6 100%);
}

.commercial-unscheduled-list {
  display: grid;
  gap: 0.75rem;
}

.commercial-unscheduled-item {
  padding: 0.85rem 0.95rem;
  border: 1px solid rgba(250, 204, 21, 0.45);
  border-radius: 0.85rem;
  background: rgba(255, 255, 255, 0.82);
}

.commercial-unscheduled-item__title {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-weight: 700;
}

.commercial-unscheduled-item__meta {
  margin-top: 0.3rem;
  color: #475569;
  font-size: 0.95rem;
}

.fc .fc-toolbar-title {
  font-size: 1.15rem;
  font-weight: 700;
  color: #0f172a;
}

.fc .fc-button-primary {
  border-color: #1d4ed8;
  background: #1d4ed8;
}

.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active {
  border-color: #0f766e;
  background: #0f766e;
}

.fc .fc-event {
  border: 0;
  border-radius: 0.8rem;
  padding: 0.18rem 0.25rem;
  box-shadow: 0 10px 18px rgba(15, 23, 42, 0.12);
}

.fc .fc-event.calendar-entry--lead {
  background: #fef3c7 !important;
  color: #7c2d12 !important;
}

.fc .fc-event.calendar-entry--event {
  background: #dbeafe !important;
  color: #1e3a8a !important;
}

.fc .fc-event-title {
  font-weight: 700;
}

.event-menu-admin-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
  gap: 1.5rem;
  padding: 1.6rem 1.7rem;
  border: 1px solid #ead9ca;
  border-radius: 24px;
  background:
    radial-gradient(circle at top right, rgba(245, 158, 11, 0.18), transparent 32%),
    linear-gradient(135deg, #fff8f2 0%, #fff 52%, #fff5ea 100%);
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.06);
}

.event-menu-admin-hero__copy p {
  max-width: 760px;
  color: #5b6474;
  font-size: 1.02rem;
}

.event-menu-admin-hero__actions {
  display: grid;
  gap: 0.9rem;
  align-content: start;
  justify-items: start;
}

.event-menu-admin-hero__url {
  width: 100%;
  padding: 1rem 1.1rem;
  border: 1px solid #ead9ca;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.86);
}

.event-menu-admin-hero__url span {
  display: block;
  margin-bottom: 0.45rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #8b5e34;
}

.event-menu-admin-hero__url code {
  display: block;
  white-space: normal;
  word-break: break-all;
  color: #0f172a;
}

.event-menu-admin-grid {
  display: grid;
  gap: 1rem;
}

.event-menu-admin-shell {
  display: grid;
  grid-template-columns: minmax(300px, 360px) minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
}

.event-menu-admin-sidebar {
  display: grid;
  gap: 1.25rem;
  position: sticky;
  top: 92px;
}

.event-menu-qr-card,
.event-menu-live-card,
.event-menu-extra-card {
  border-radius: 22px;
  overflow: hidden;
}

.event-menu-qr-card__image {
  width: 100%;
  max-width: 260px;
  margin: 0 auto 1rem;
  padding: 0.8rem;
  border-radius: 24px;
  background: linear-gradient(180deg, #fffaf4 0%, #fff 100%);
  border: 1px solid #efe7de;
}

.event-menu-qr-card__image img {
  width: 100%;
  height: auto;
  display: block;
}

.event-menu-live-item {
  display: grid;
  gap: 0.85rem;
  padding: 1rem;
  border: 1px solid #efe7de;
  border-radius: 20px;
  background: linear-gradient(180deg, #fffaf7 0%, #fff 100%);
}

.event-menu-live-item__head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 0.85rem;
}

.event-menu-live-item__head strong {
  display: block;
  color: #111827;
}

.event-menu-live-item__head span:not(.badge) {
  color: #6b7280;
  font-size: 0.88rem;
}

.event-menu-live-item__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.event-menu-live-item__actions form {
  margin: 0;
}

.event-menu-picker-card {
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid #ece8e1;
}

.event-menu-picker-card.is-selected {
  border-color: rgba(198, 40, 29, 0.28);
  box-shadow: 0 20px 36px rgba(198, 40, 29, 0.08);
}

.event-menu-picker-card__media {
  height: 220px;
  background: linear-gradient(135deg, #1a120e 0%, #503322 100%);
}

.event-menu-picker-card__media img,
.event-menu-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.event-menu-picker-card__fallback,
.event-menu-card__fallback {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 4rem;
  font-weight: 700;
}

.event-menu-picker-card__meta {
  display: grid;
  gap: 0.35rem;
  padding: 0.85rem 1rem;
  border: 1px solid #f1ede8;
  border-radius: 16px;
  background: #fbfaf8;
  color: #5b6474;
  font-size: 0.94rem;
}

.event-menu-extras-list {
  display: grid;
  gap: 1rem;
}

.event-menu-extra-card {
  padding: 1.1rem;
  border: 1px solid #ece8e1;
  background: linear-gradient(180deg, #ffffff 0%, #fff8f1 100%);
  box-shadow: 0 16px 34px rgba(15, 23, 42, 0.05);
}

.event-menu-public-body {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at top right, rgba(245, 158, 11, 0.18), transparent 24%),
    radial-gradient(circle at bottom left, rgba(198, 40, 29, 0.14), transparent 22%),
    linear-gradient(180deg, #2d160f 0%, #120c0a 100%);
  color: #fff8f2;
  font-family: var(--font-main);
}

.event-menu-public-shell {
  width: min(1480px, calc(100vw - 40px));
  margin: 0 auto;
  padding: 34px 0 44px;
}

.event-menu-public-hero {
  display: grid;
  gap: 1.2rem;
  padding: 1.6rem 1.7rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 28px;
  background:
    linear-gradient(135deg, rgba(255, 251, 247, 0.1) 0%, rgba(255, 232, 214, 0.06) 100%);
  backdrop-filter: blur(8px);
  box-shadow: 0 18px 46px rgba(0, 0, 0, 0.22);
}

.event-menu-public-hero__brand {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  color: #f5d4b6;
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.event-menu-public-hero__brand img {
  width: 56px;
  height: 56px;
  border-radius: 999px;
  background: #111;
  object-fit: contain;
}

.event-menu-public-hero__eyebrow {
  margin: 0 0 0.45rem;
  color: #f5d4b6;
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.event-menu-public-hero h1 {
  margin: 0 0 0.55rem;
  color: #fff8f2;
  font-family: "Playfair Display", Georgia, serif;
  font-size: clamp(2.5rem, 5vw, 4.8rem);
  line-height: 0.96;
  letter-spacing: -0.04em;
}

.event-menu-public-hero__content p:last-child {
  max-width: 920px;
  margin: 0;
  color: rgba(255, 248, 242, 0.84);
  font-size: 1.08rem;
  line-height: 1.65;
}

.event-menu-group {
  margin-top: 1.5rem;
}

.event-menu-group__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.95rem;
}

.event-menu-group__header h2 {
  margin: 0;
  color: #fff8f2;
  font-size: clamp(1.45rem, 2vw, 2rem);
  font-weight: 700;
}

.event-menu-group__header span {
  padding: 0.55rem 0.85rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: #f7dfc7;
  font-size: 0.9rem;
  font-weight: 700;
}

.event-menu-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(310px, 1fr));
  gap: 1.2rem;
}

.event-menu-card {
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 26px;
  background: linear-gradient(180deg, rgba(255, 251, 247, 0.1) 0%, rgba(255, 244, 234, 0.06) 100%);
  box-shadow: 0 20px 46px rgba(0, 0, 0, 0.22);
}

.event-menu-card.is-featured {
  border-color: rgba(245, 158, 11, 0.45);
  box-shadow: 0 26px 54px rgba(245, 158, 11, 0.16);
}

.event-menu-card__image {
  position: relative;
  height: 280px;
  background: linear-gradient(135deg, #28150f 0%, #513121 100%);
}

.event-menu-card__status {
  position: absolute;
  left: 18px;
  top: 18px;
  display: inline-flex;
  align-items: center;
  padding: 0.55rem 0.9rem;
  border-radius: 999px;
  font-size: 0.84rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.event-menu-card__status--disponible {
  background: #dcfce7;
  color: #166534;
}

.event-menu-card__status--proxima_salida {
  background: #fef3c7;
  color: #92400e;
}

.event-menu-card__status--estrella {
  background: #dbeafe;
  color: #1d4ed8;
}

.event-menu-card__status--agotada {
  background: #e5e7eb;
  color: #475569;
}

.event-menu-card__body {
  padding: 1.25rem 1.25rem 1.35rem;
}

.event-menu-card__title-row {
  display: grid;
  gap: 0.7rem;
  margin-bottom: 1rem;
}

.event-menu-card__title-row h3 {
  margin: 0;
  color: #fff8f2;
  font-size: 1.75rem;
  font-weight: 700;
}

.event-menu-card__title-row p {
  margin: 0.45rem 0 0;
  color: rgba(255, 248, 242, 0.82);
  line-height: 1.6;
}

.event-menu-card__featured {
  justify-self: start;
  padding: 0.55rem 0.8rem;
  border: 1px solid rgba(245, 158, 11, 0.3);
  border-radius: 999px;
  background: rgba(245, 158, 11, 0.15);
  color: #ffd89c;
  font-size: 0.84rem;
  font-weight: 700;
}

.event-menu-card__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-bottom: 1rem;
}

.event-menu-card__chips span {
  padding: 0.5rem 0.75rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: #fff4e8;
  font-size: 0.82rem;
  font-weight: 700;
}

.event-menu-card__detail-list {
  display: grid;
  gap: 0.9rem;
}

.event-menu-card__detail-list div {
  padding: 0.9rem 0.95rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  background: rgba(10, 8, 7, 0.2);
}

.event-menu-card__detail-list strong {
  display: block;
  margin-bottom: 0.35rem;
  color: #f9dcc0;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.event-menu-card__detail-list span {
  color: rgba(255, 248, 242, 0.86);
  line-height: 1.62;
}

@media (max-width: 1199px) {
  .commercial-calendar-shell {
    grid-template-columns: 1fr;
  }
  .commercial-calendar-stage {
    min-height: 620px;
  }
  .event-menu-admin-shell {
    grid-template-columns: 1fr;
  }
  .event-menu-admin-sidebar {
    position: static;
  }
  .event-menu-admin-hero {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 991px) {
  .event-menu-public-shell {
    width: min(100vw - 20px, 100%);
    padding: 18px 0 26px;
  }

  .event-menu-public-hero {
    padding: 1.2rem 1rem;
    border-radius: 22px;
  }

  .event-menu-card__image {
    height: 230px;
  }
}

body.desktop-sidebar-collapsed .app-shell {
  padding-left: calc(var(--app-sidebar-collapsed-width) + var(--app-sidebar-collapsed-gap));
}

body.desktop-sidebar-collapsed .sidebar {
  width: var(--app-sidebar-collapsed-width) !important;
  min-width: var(--app-sidebar-collapsed-width) !important;
  max-width: var(--app-sidebar-collapsed-width) !important;
  flex-basis: var(--app-sidebar-collapsed-width) !important;
}

body.desktop-sidebar-collapsed .sidebar-brand {
  padding-left: 0.7rem;
  padding-right: 0.7rem;
}

body.desktop-sidebar-collapsed .sidebar-brand .d-flex {
  justify-content: center;
  gap: 0;
}
body.desktop-sidebar-collapsed .sidebar-header {
  justify-content: center;
}

body.desktop-sidebar-collapsed .sidebar-header-actions {
  margin-left: 0;
}


body.desktop-sidebar-collapsed .app-brand-logo {
  width: 40px;
  height: 40px;
}

body.desktop-sidebar-collapsed .app-brand-copy {
  opacity: 0;
  max-width: 0;
  transform: translateX(-8px);
  overflow: hidden;
  pointer-events: none;
}

body.desktop-sidebar-collapsed .sidebar .sidebar-nav {
  padding-top: 0.7rem;
  padding-left: 0.45rem;
  padding-right: 0.45rem;
}

body.desktop-sidebar-collapsed .sidebar .nav-title {
  opacity: 0;
  max-height: 0;
  margin: 0;
  overflow: hidden;
  transform: translateY(-4px);
  pointer-events: none;
}

body.desktop-sidebar-collapsed .sidebar .nav-item {
  display: flex;
  justify-content: center;
}

body.desktop-sidebar-collapsed .sidebar .app-sidebar-group {
  display: flex;
  justify-content: center;
}

body.desktop-sidebar-collapsed .app-sidebar-group-title,
body.desktop-sidebar-collapsed .app-sidebar-group-chevron,
body.desktop-sidebar-collapsed .app-sidebar-subnav {
  display: none;
}

body.desktop-sidebar-collapsed .sidebar .nav-item + .nav-item {
  margin-top: 0.55rem;
}

body.desktop-sidebar-collapsed .sidebar .nav-link {
  justify-content: center;
  gap: 0;
  width: 3rem;
  height: 3rem;
  padding: 0;
  border-radius: 0.95rem;
}

body.desktop-sidebar-collapsed .app-sidebar-label {
  opacity: 0;
  max-width: 0;
  overflow: hidden;
  transform: translateX(-10px);
  pointer-events: none;
}

.app-eyebrow-dark {
  background: rgba(249, 115, 22, 0.12);
  color: #c2410c;
}

.app-hero-title {
  font-size: clamp(2rem, 3vw, 3rem);
  line-height: 1.05;
  margin-bottom: 0.8rem;
}

.app-hero-copy {
  max-width: 56rem;
  color: rgba(255,255,255,.86);
  font-size: 1.05rem;
}

.demo-feature-card {
  height: 100%;
  padding: 1rem 1.05rem;
  border: 1px solid #e6ebf2;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.04);
}

.commercial-flow-card {
  border: 1px solid #f3d2b0;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.05);
  background: linear-gradient(135deg, #fffaf5 0%, #ffffff 55%, #fff4e6 100%);
}

.commercial-flow-step {
  height: 100%;
  padding: 1rem;
  border-radius: 1rem;
  border: 1px solid #f4ddc4;
  background: linear-gradient(180deg, #ffffff 0%, #fff8ef 100%);
  font-weight: 700;
  color: #0f172a;
}

.lead-hero {
  padding: 1.6rem;
  border-radius: 1.25rem;
  background: linear-gradient(135deg, #1c1917 0%, #111827 45%, #f97316 100%);
  border: 1px solid #2d2d2d;
  color: #fff;
}

.lead-hero .text-body-secondary {
  color: rgba(255,255,255,.78) !important;
}

.lead-context-header {
  position: relative;
  z-index: 1015;
  margin-bottom: 1.5rem;
  padding: 0.35rem 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.lead-context-header__eyebrow {
  margin-bottom: 0.6rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--brand-red);
}

.lead-context-header__main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  flex-wrap: wrap;
}

.lead-context-header__title {
  margin: 0;
  font-size: clamp(2.35rem, 3vw, 3rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.04em;
  color: #0f172a;
}

.lead-context-header__meta {
  color: #1f2937;
  font-size: 1.28rem;
  font-weight: 600;
}

.lead-summary-card {
  height: 100%;
  border: 1px solid #f0f0f0;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: none !important;
  color: #262626;
  font-family: "Public Sans", var(--font-main);
  overflow: hidden;
}

a.lead-summary-card {
  display: block;
  color: inherit;
  transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

a.lead-summary-card:hover,
a.lead-summary-card:focus-visible {
  border-color: #d9d9d9;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06) !important;
  transform: translateY(-1px);
}

.lead-summary-mantis-card__body {
  display: flex;
  min-height: 154px;
  flex-direction: column;
  justify-content: space-between;
  gap: 1rem;
  padding: 20px !important;
}

.lead-summary-mantis-card__stack {
  display: flex;
  width: 100%;
  flex-direction: column;
  gap: 0.65rem;
}

.lead-summary-mantis-card__title {
  margin: 0;
  color: #262626;
  font-family: "Public Sans", var(--font-main);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.57;
  letter-spacing: 0;
}

.lead-summary-mantis-card__metric {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.lead-summary-mantis-card__value {
  margin: 0;
  color: #262626;
  font-family: "Public Sans", var(--font-main);
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.167;
  letter-spacing: 0;
}

.lead-summary-mantis-chip {
  display: inline-flex;
  min-width: 0;
  max-width: 100%;
  height: 24px;
  align-items: center;
  gap: 4px;
  padding: 0 8px;
  border-radius: 16px;
  border: 1px solid transparent;
  font-family: "Public Sans", var(--font-main);
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}

.lead-summary-mantis-chip svg {
  width: 0.75rem;
  height: 0.75rem;
  flex: 0 0 auto;
  fill: currentColor;
}

.lead-summary-mantis-chip span {
  overflow: hidden;
  text-overflow: ellipsis;
}

.lead-summary-mantis-chip--primary {
  background: #e6f4ff;
  color: #1677ff;
  border-color: #91caff;
}

.lead-summary-mantis-chip--success {
  background: #f6ffed;
  color: #52c41a;
  border-color: #b7eb8f;
}

.lead-summary-mantis-chip--info {
  background: #e6fffb;
  color: #13c2c2;
  border-color: #87e8de;
}

.lead-summary-mantis-chip--neutral {
  background: #fafafa;
  color: #8c8c8c;
  border-color: #d9d9d9;
}

.lead-summary-mantis-card__caption {
  width: 100%;
  color: #8c8c8c;
  font-family: "Public Sans", var(--font-main);
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.66;
}

.lead-summary-mantis-card__caption strong {
  color: #1677ff;
  font-weight: 600;
}

.lead-management-steps {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 0.65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.lead-management-step {
  display: grid;
  gap: 0.45rem;
  min-width: 0;
  padding: 0.85rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #f8fafc;
}

.lead-management-step__number {
  display: inline-grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border-radius: 999px;
  background: #e5e7eb;
  color: #475569;
  font-weight: 700;
}

.lead-management-step__copy {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}

.lead-management-step__label {
  font-weight: 700;
  color: #111827;
}

.lead-management-step__note {
  color: #64748b;
  font-size: 0.8rem;
  line-height: 1.25;
}

.lead-management-step.is-done {
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.lead-management-step.is-done .lead-management-step__number {
  background: #16a34a;
  color: #fff;
}

.lead-management-step.is-active {
  border-color: #fed7aa;
  background: #fff7ed;
  box-shadow: inset 0 0 0 1px rgba(249, 115, 22, 0.18);
}

.lead-management-step.is-active .lead-management-step__number {
  background: #f97316;
  color: #fff;
}

.lead-followup-item {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0.95rem;
  border: 1px solid #fed7aa;
  border-radius: 8px;
  background: #fff7ed;
}

.lead-panel-title {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  font-size: 1.5rem;
  font-weight: 700;
  color: #0f172a;
}

.lead-panel-title__icon {
  width: 1.3rem;
  height: 1.3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #111827;
}

.lead-panel-title__icon svg {
  width: 1.25rem;
  height: 1.25rem;
}

.lead-context-header__status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0.7rem 1.3rem;
  border-radius: 10px;
  border: 1px solid #eab308;
  background: #facc15;
  color: #111827;
  font-weight: 700;
  box-shadow: 0 10px 18px rgba(250, 204, 21, 0.14);
}

.ui-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  border: 1px solid #d8e0e7;
  background: #fff;
  color: #334155;
  white-space: nowrap;
}

.ui-badge-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: currentColor;
  opacity: 0.8;
}

.ui-badge--pending {
  color: #c2410c;
}

.ui-badge--ready {
  color: #1d4ed8;
}

.ui-badge--sent {
  color: #7c3aed;
}

.ui-badge--done {
  color: #15803d;
}

.ui-badge--neutral {
  color: #475569;
}

.lead-stage-card {
  display: grid;
  gap: 14px;
  padding: 1rem 1.1rem 1.1rem;
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
  background: #fff;
}

.lead-stage-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.9rem;
  flex-wrap: wrap;
}

.lead-stage-card__eyebrow {
  margin-bottom: 0.35rem;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #64748b;
}

.lead-stage-card__head h3 {
  margin: 0;
  font-size: 1.08rem;
  font-weight: 700;
  color: #0f172a;
}

.lead-stage-card__copy {
  margin: 0;
  color: #475569;
  line-height: 1.6;
}

.lead-stage-card__actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.lead-stage-card__actions form {
  margin: 0;
}

.lead-stage-card__actions > *,
.lead-stage-card__actions form .btn {
  width: 100%;
}

.proposal-intro {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  padding: 1.15rem 1.2rem;
  border: 1px solid #f3e1cd;
  border-radius: 1rem;
  background: linear-gradient(135deg, #fffaf5 0%, #fff 55%, #fff3e8 100%);
}

.proposal-intro__eyebrow {
  margin-bottom: 0.45rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #c2410c;
}

.proposal-intro__title {
  margin-bottom: 0.5rem;
  font-size: clamp(1.25rem, 2vw, 1.7rem);
  font-weight: 700;
  color: #0f172a;
}

.proposal-intro__copy {
  max-width: 52rem;
  color: #475569;
}

.proposal-intro__stats {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.proposal-intro-chip {
  min-width: 140px;
  padding: 0.8rem 0.9rem;
  border-radius: 0.95rem;
  background: rgba(255,255,255,0.92);
  border: 1px solid #ece6df;
}

.proposal-intro-chip span {
  display: block;
  margin-bottom: 0.2rem;
  color: #64748b;
  font-size: 0.82rem;
}

.proposal-intro-chip strong {
  font-size: 1rem;
  color: #0f172a;
}

.proposal-card {
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.05);
  background: linear-gradient(180deg, #ffffff 0%, #fffaf5 100%);
}

.proposal-card--basica {
  background: linear-gradient(180deg, #fffdf9 0%, #fff4ea 100%);
}

.proposal-card--media {
  background: linear-gradient(180deg, #fbf9ff 0%, #f0eaff 100%);
}

.proposal-card--plus {
  background: linear-gradient(180deg, #f7fcfb 0%, #e6f8f1 100%);
}

.proposal-card__hero {
  max-width: 52rem;
}

.proposal-card__title {
  font-size: 1.35rem;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.15;
}

.proposal-card__copy {
  margin-top: 0.65rem;
  color: #475569;
  max-width: 54rem;
}

.proposal-card__price-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.45rem;
  text-align: right;
}

.proposal-card__price-label {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #64748b;
  font-weight: 700;
}

.proposal-card__summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
}

.proposal-note-block {
  height: 100%;
  padding: 0.95rem 1rem;
  border-radius: 0.95rem;
  border: 1px solid rgba(226, 232, 240, 0.9);
  background: rgba(255,255,255,0.84);
}

.proposal-note-block__title {
  margin-bottom: 0.4rem;
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #9a3412;
}

.proposal-note-block__body {
  color: #334155;
  line-height: 1.55;
}

.proposal-editor-form textarea,
.proposal-editor-form input,
.proposal-editor-form select {
  background: rgba(255,255,255,0.94);
}

.proposal-tier-badge {
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.72rem;
}

.proposal-price {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
  color: #c2410c;
}

.contract-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  padding: 1.3rem 1.35rem;
  border: 1px solid #e4ddf7;
  border-radius: 1.15rem;
  background: linear-gradient(135deg, #f8f5ff 0%, #ffffff 52%, #eef6ff 100%);
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.05);
}

.contract-hero__eyebrow {
  margin-bottom: 0.45rem;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #6d28d9;
}

.contract-hero__title {
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  font-weight: 700;
  color: #0f172a;
}

.contract-hero__copy {
  max-width: 48rem;
  color: #475569;
}

.contract-hero__price {
  min-width: 180px;
  padding: 0.95rem 1rem;
  border-radius: 1rem;
  background: rgba(255,255,255,0.95);
  border: 1px solid #e2e8f0;
  text-align: right;
}

.contract-hero__price span {
  display: block;
  margin-bottom: 0.22rem;
  font-size: 0.82rem;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.contract-hero__price strong {
  font-size: 1.7rem;
  color: #0f172a;
}

.contract-summary-card,
.contract-editor-card,
.contract-side-card {
  border-radius: 1rem;
}

.contract-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.contract-summary-item {
  padding: 0.95rem 1rem;
  border-radius: 0.95rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.contract-summary-item--wide {
  grid-column: 1 / -1;
}

.contract-summary-item span {
  display: block;
  margin-bottom: 0.2rem;
  font-size: 0.82rem;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.contract-summary-item strong {
  color: #0f172a;
  font-size: 1rem;
}

.contract-editor-textarea {
  min-height: 30rem;
  font-family: Consolas, "SFMono-Regular", Menlo, Monaco, monospace;
  font-size: 0.95rem;
  line-height: 1.6;
  background: #fcfcfd;
}

.contract-side-card {
  position: sticky;
  top: 6.75rem;
}

.contract-side-block {
  padding: 0.9rem 0.95rem;
  border-radius: 0.95rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.contract-checklist {
  padding-left: 1.1rem;
  color: #334155;
}

.contract-checklist li + li {
  margin-top: 0.35rem;
}

.activity-timeline {
  display: grid;
  gap: 0.9rem;
}

.activity-item {
  padding: 0.95rem 1rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.9rem;
  background: #fff;
}

.public-lead-shell {
  max-width: 920px;
  margin: 0 auto;
}

.public-proposal-grid {
  display: grid;
  gap: 1rem;
}

.client-brief-hero {
  padding: 2rem;
  border-radius: 1.25rem;
  background: linear-gradient(135deg, #111827 0%, #1f2937 45%, #0f766e 100%);
  color: #fff;
}

.app-progress-chip {
  width: 160px;
  height: 28px;
}

.app-progress-chip--section {
  width: 100%;
  max-width: 220px;
  height: 12px;
  background: #e2e8f0;
}

.app-progress-chip--section .progress-bar {
  font-size: 0.72rem;
  font-weight: 700;
  background: linear-gradient(90deg, #0f766e 0%, #1d4ed8 100%);
}

.checklist-section-header {
  display: grid;
  gap: 0.7rem;
}

.checklist-section-card {
  display: block;
}

.checklist-section-card > summary {
  cursor: pointer;
  list-style: none;
}

.checklist-section-card > summary::-webkit-details-marker {
  display: none;
}

.checklist-section-header__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.checklist-section-header__title {
  color: #20243a;
  font-size: 0.86rem;
  font-weight: 700;
}

.checklist-section-header__meta {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
}

.checklist-section-header__chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border: 1px solid #ded9ff;
  border-radius: 8px;
  color: #5d43d2;
  transition: transform 160ms ease, background 160ms ease;
}

.checklist-section-header__chevron svg {
  width: 16px;
  height: 16px;
}

.checklist-section-card[open] .checklist-section-header__chevron {
  background: #f4f1ff;
  transform: rotate(180deg);
}

.checklist-section-body {
  display: grid;
  gap: 0.55rem;
}

.checklist-task-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  padding: 0.78rem 0.85rem;
  border: 1px solid #ececf2;
  border-radius: 9px;
  background: #fbfbfe;
}

.checklist-task-row [data-checklist-label] {
  color: #2b3046;
  font-size: 0.78rem;
}

.checklist-task-row .btn {
  flex: 0 0 auto;
}

@media (max-width: 575.98px) {
  .checklist-task-row {
    align-items: stretch;
    flex-direction: column;
  }

  .checklist-task-row .btn {
    width: 100%;
  }
}

.packing-sheet .card {
  break-inside: avoid;
}

@media print {
  .sidebar,
  .header,
  .app-back-btn,
  .btn,
  .alert {
    display: none !important;
  }

  .wrapper,
  .body,
  .container-lg {
    background: #fff !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media (max-width: 991.98px) {
  .app-shell {
    padding-left: 0;
  }

  .container-fluid.app-page-shell,
  .container-lg.px-4 {
    padding-left: 0.9rem !important;
    padding-right: 0.9rem !important;
  }
}

.material-checklist {
  font-size: 0.98rem;
}

.material-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.85rem 0.9rem;
  border: 1px solid #e3e8ef;
  border-radius: 0.75rem;
  background: #f8fafc;
}

.material-item--editable {
  justify-content: space-between;
}

.material-item--editable form {
  margin: 0;
}

.material-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #5856d6;
  margin-top: 0.35rem;
  flex: 0 0 auto;
}

.mobile-quick-nav {
  display: none;
}

.mobile-quick-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  text-decoration: none;
  color: #111827;
  min-width: 0;
}

.mobile-quick-link.is-active .mobile-quick-icon {
  background: #111827;
  color: #fff;
}

.mobile-quick-icon {
  display: grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #d7dee7;
}

.mobile-quick-icon svg {
  width: 1.2rem;
  height: 1.2rem;
  display: block;
}

.mobile-quick-label {
  font-size: 0.72rem;
  font-weight: 600;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.mobile-preview-shell {
  max-width: 280px;
  margin: 0 auto;
  border: 10px solid #111827;
  border-radius: 2rem;
  overflow: hidden;
  background: #f3f4f6;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
}

.mobile-preview-top {
  height: 22px;
  background: #111827;
}

.mobile-preview-screen {
  min-height: 280px;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, #ffffff 0%, #eef3f8 100%);
}

.mobile-preview-content {
  padding: 1.2rem;
  text-align: center;
}

.mobile-preview-nav {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.3rem;
  padding: 0.75rem;
  background: #fff;
  border-top: 1px solid #dfe6ee;
}

.mobile-preview-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
}

.app-clickable-table .clickable-row {
  cursor: pointer;
}

.app-clickable-table .clickable-row > td:first-child {
  position: relative;
}

.app-primary-row-link,
.app-secondary-row-link {
  color: inherit;
  text-decoration: none;
}

.app-primary-row-link {
  font-weight: 700;
}

.app-primary-row-link:hover,
.app-secondary-row-link:hover {
  color: #1d4ed8;
  text-decoration: underline;
}

.app-clickable-table .clickable-row:hover > * {
  background: #f7fafc;
}


.app-clickable-table .clickable-row:focus-visible {
  outline: 2px solid #2a5298;
  outline-offset: -2px;
}

@media (max-width: 991px) {
  html,
  body,
  .wrapper,
  .body,
  .container-lg {
    max-width: 100%;
    overflow-x: hidden;
  }

  .app-hero {
    display: none !important;
  }

  .lead-context-header {
    top: 0.5rem;
    padding: 0.9rem;
  }

  .proposal-card__summary-grid,
  .contract-summary-grid {
    grid-template-columns: 1fr;
  }

  .contract-side-card {
    position: static;
    top: auto;
  }

  .header > .container-fluid {
    padding-left: 0.7rem !important;
    padding-right: 0.7rem !important;
  }

  .header {
    position: sticky;
    top: 0;
    z-index: 1038;
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(14px);
  }

  .app-header-row {
    position: relative;
    display: block !important;
    padding-top: calc(0.9rem + env(safe-area-inset-top));
    padding-bottom: 0.9rem;
    min-height: 4.4rem;
  }

  .app-header-left {
    display: flex;
    align-items: center;
    gap: 0.55rem !important;
    min-width: 0;
    max-width: min(52vw, calc(100% - 10.75rem));
    grid-column: 1;
    overflow: hidden;
  }

  .app-header-title {
    flex: 1 1 auto;
    min-width: 0;
  }

  .app-header-title__desktop {
    display: none;
  }

  .app-header-title__mobile {
    display: inline;
  }

  .app-header-right {
    position: absolute;
    right: 0;
    top: 50%;
    display: flex;
    flex-direction: row;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 0.22rem !important;
    min-width: 0;
    max-width: calc(100% - 4.25rem);
    white-space: nowrap;
    transform: translateY(-50%) scale(1);
    transform-origin: right center;
  }

  .app-header-right .badge,
  .app-header-right .btn {
    margin-left: 0;
  }

  .app-header-right .badge {
    font-size: 0.92rem;
    line-height: 1.15;
    padding: 0.5rem 0.72rem;
  }

  .app-header-right .btn {
    padding: 0.48rem 0.7rem;
    font-size: 0.92rem;
    line-height: 1.15;
  }

  .app-notification-menu {
    width: min(320px, calc(100vw - 1.25rem));
    transform: translateX(-0.8rem);
  }

  .app-sidebar-toggle {
    flex: 0 0 auto;
    width: 2.85rem;
    height: 2.85rem;
    border-color: #111827;
    background: #111827;
    color: #fff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.18);
  }

  .app-sidebar-toggle svg {
    width: 1.35rem;
    height: 1.35rem;
  }

  #pwaInstallButton {
    display: none !important;
  }

  .header .app-header-row > .app-header-right {
    right: 0 !important;
  }

  .app-back-btn {
    min-width: auto;
    padding-left: 0.7rem !important;
    padding-right: 0.7rem !important;
  }

  .body .container-lg > .d-flex.justify-content-between.align-items-center.mb-4 {
    flex-direction: column;
    align-items: stretch !important;
    gap: 1rem !important;
  }

  .body .container-lg > .d-flex.justify-content-between.align-items-center.mb-4 > a.btn {
    width: 100%;
    text-align: center;
  }

  .app-table-responsive {
    overflow-x: visible;
  }

  .app-clickable-table {
    min-width: 0 !important;
    margin-bottom: 0;
  }

  .app-clickable-table thead {
    display: none;
  }

  .app-clickable-table tbody {
    display: grid;
    gap: 1rem;
  }

  .app-clickable-table tbody tr {
    display: block;
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06);
    overflow: hidden;
  }

  .app-clickable-table tbody td {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    width: 100%;
    padding: 0.9rem 1rem;
    border: 0 !important;
    border-bottom: 1px solid #eef2f7 !important;
    white-space: normal;
    text-align: left;
  }

  .app-clickable-table tbody td::before {
    content: attr(data-label);
    flex: 0 0 42%;
    max-width: 42%;
    color: #64748b;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
  }

  .app-clickable-table tbody td:first-child {
    display: block;
    padding: 1rem 1rem 0.85rem;
    border-bottom: 1px solid #eef2f7 !important;
  }

  .app-clickable-table tbody td:first-child::before {
    content: none;
  }

  .app-clickable-table .clickable-row > td:first-child {
    font-size: 1.05rem;
    line-height: 1.35;
  }

  .app-clickable-table tbody td:last-child {
    border-bottom: 0 !important;
  }

  .app-clickable-table .app-row-action {
    display: block;
    padding-top: 0.9rem;
  }

  .app-clickable-table .app-row-action::before {
    display: block;
    content: attr(data-label);
    margin-bottom: 0.55rem;
    color: #64748b;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
  }

  .app-clickable-table .app-row-action .btn {
    width: 100%;
  }

  .app-staff-table .app-row-action,
  .app-team-table .app-row-action {
    text-align: left !important;
  }

  .app-staff-table .app-row-action .btn,
  .app-team-table .app-row-action .btn {
    min-height: 42px;
  }

  .app-team-table .app-row-action .d-flex,
  .app-staff-table .app-row-action .d-flex {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 0.6rem !important;
    justify-content: stretch !important;
  }

  .app-orders-table .app-order-status-form,
  .app-orders-table .app-row-action .app-order-status-form {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 0.65rem !important;
    width: 100%;
  }

  .app-orders-table .app-order-status-form .form-select,
  .app-orders-table .app-order-status-form .btn {
    width: 100%;
  }

  .app-ingredients-table .app-row-action .btn,
  .app-orders-table .app-row-action .btn {
    min-height: 42px;
  }

  .app-clickable-table td[data-label="Acciones"] .d-inline-flex {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 0.6rem !important;
    width: 100%;
    justify-content: stretch !important;
  }

  .app-clickable-table td[data-label="Acciones"] .d-inline-flex .btn,
  .app-clickable-table td[data-label="Acciones"] .d-inline-flex form,
  .app-clickable-table td[data-label="Acciones"] .d-inline-flex form .btn {
    width: 100%;
  }

  body {
    padding-bottom: 7rem;
  }

  .app-page-shell,
  .app-embedded-page,
  .container-lg.px-4 {
    padding-bottom: 7.2rem !important;
  }

  body.mobile-sidebar-open {
    overflow: hidden;
  }

  .sidebar {
    position: fixed !important;
    inset: 0 auto 0 0;
    width: min(286px, 82vw) !important;
    max-width: 82vw;
    height: 100dvh;
    min-height: 100dvh;
    transform: translateX(-100%);
    transition: transform 0.22s ease;
    z-index: 1046;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.28);
    visibility: visible !important;
    margin-left: 0 !important;
    background: #111827 !important;
    overflow: hidden;
  }

  .sidebar .sidebar-header {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #111827;
    padding-right: 0.35rem;
  }

  .sidebar .sidebar-nav,
  .sidebar .simplebar-content,
  .sidebar .simplebar-content-wrapper {
    height: auto;
  }

  .sidebar .simplebar-content-wrapper {
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }

  .sidebar .sidebar-nav {
    padding: 0.35rem 0.45rem 1rem;
  }

  .sidebar .nav-link {
    padding-top: 0.68rem;
    padding-bottom: 0.68rem;
    padding-left: 0.65rem;
    padding-right: 0.65rem;
    font-size: 0.88rem;
    line-height: 1.24;
  }

  .sidebar .nav-title {
    margin-top: 0.85rem;
    padding-top: 0;
    font-size: 0.68rem;
  }

  body.mobile-sidebar-open .sidebar {
    transform: translateX(0);
  }

  .wrapper {
    margin-left: 0 !important;
  }

  .mobile-sidebar-backdrop {
    position: fixed;
    inset: 0 0 0 min(286px, 82vw);
    background: rgba(15, 23, 42, 0.42);
    z-index: 1045;
    pointer-events: auto;
  }

  body.mobile-sidebar-open .sidebar {
    z-index: 1048 !important;
    pointer-events: auto;
  }

  body.mobile-sidebar-open .mobile-sidebar-backdrop {
    display: block;
  }

  .mobile-quick-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1035;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.3rem;
    padding: 0.65rem 0.75rem calc(0.75rem + env(safe-area-inset-bottom));
    background: rgba(255, 255, 255, 0.98);
    border-top: 1px solid #dfe6ee;
    box-shadow: 0 -10px 30px rgba(15, 23, 42, 0.08);
  }

  .header .container-fluid {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .header-toggler {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    opacity: 1 !important;
    visibility: visible !important;
  }
}



.logistics-mini {
  font-size: 1.6rem;
}

.logistics-stat-card {
  padding: 1rem 1.1rem;
  border: 1px solid var(--border-soft);
  border-radius: 14px;
  background: linear-gradient(180deg, #fff 0%, #faf7f4 100%);
}

.logistics-metric {
  height: 100%;
  padding: 0.95rem 1rem;
  border-radius: 14px;
  background: #f8fafc;
  border: 1px solid var(--border-soft);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.logistics-metric span {
  font-size: 0.82rem;
  color: var(--text-muted);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.logistics-metric strong {
  font-size: 1.05rem;
  color: var(--text-main);
}

.logistics-metric--total {
  background: linear-gradient(180deg, #fff1ec 0%, #ffe1d6 100%);
  border-color: #f1c5b4;
}

.event-profitability-grid {
  align-items: stretch;
}

.event-profit-card {
  height: 100%;
  border: 0;
  border-radius: 0.5rem;
  background: #fff;
  color: #566a7f;
  box-shadow: 0 0.125rem 0.375rem 0 rgba(67, 89, 113, 0.12);
}

.event-profit-card .card-body {
  padding: 1.25rem;
}

.event-profit-card .card-title {
  color: #566a7f;
}

.event-profit-card p {
  color: #697a8d;
  font-size: 0.9375rem;
  line-height: 1.4;
}

.event-profit-card h4 {
  color: #384551;
  font-size: 1.35rem;
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
}

.event-profit-card small {
  display: inline-flex;
  align-items: center;
  gap: 0.125rem;
  font-size: 0.8125rem;
  line-height: 1.25;
}

.event-profit-card small svg {
  width: 1rem;
  height: 1rem;
  fill: currentColor;
}

.event-profit-card__avatar {
  width: 2.375rem;
  height: 2.375rem;
}

.event-profit-card__avatar span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.375rem;
  height: 2.375rem;
  border-radius: 0.375rem;
}

.event-profit-card__avatar svg {
  width: 1.25rem;
  height: 1.25rem;
  fill: currentColor;
}

.event-profit-card--revenue .event-profit-card__avatar span,
.event-profit-card--margin .event-profit-card__avatar span {
  background: #e7e7ff;
  color: #0f9f8f;
}

.event-profit-card--ingredients .event-profit-card__avatar span,
.event-profit-card--extras .event-profit-card__avatar span {
  background: #ffe0db;
  color: #ff3e1d;
}

.event-profit-card--staff .event-profit-card__avatar span {
  background: #fff2d6;
  color: #ffab00;
}

.event-profit-card--travel .event-profit-card__avatar span {
  background: #d7f5fc;
  color: #03c3ec;
}

@media (max-width: 1399.98px) {
  .event-profit-card .card-body {
    padding: 1rem;
  }

  .event-profit-card h4 {
    font-size: 1.12rem;
  }
}

.logistics-map-shell {
  margin-top: 1rem;
}

.event-logistics-map {
  width: 100%;
  min-height: 360px;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid var(--border-soft);
  box-shadow: var(--shadow-card);
  background: #eef2f7;
}

.briefing-list {
  padding-left: 1.05rem;
  margin: 0;
  display: grid;
  gap: 0.5rem;
}

.briefing-list li {
  color: var(--text-main);
}

.client-mock-shell {
  font-family: var(--font-main);
}

.client-mock-form {
  margin: 0;
}

.client-mock-card,
.client-mock-history-card {
  border: 1px solid #d7dde7;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 1px 6px rgba(15, 23, 42, 0.06);
  overflow: hidden;
}

.client-mock-card__header,
.client-mock-history-card__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 0.95rem 1rem;
  background: #4c5667;
  color: #fff;
}

.client-mock-card__title,
.client-mock-history-card__header h3 {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.client-mock-card__tools {
  display: flex;
  gap: 0.55rem;
  align-items: center;
}

.client-mock-card__tool {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.92);
}

.client-mock-card__tool svg {
  width: 13px;
  height: 13px;
}

.client-mock-card__body,
.client-mock-history-card__body {
  padding: 1rem;
  background: #fff;
}

.client-mock-section-title {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0;
  color: #1a91ff;
  font-size: 1.05rem;
  font-weight: 500;
}

.client-mock-section-icon {
  display: inline-flex;
  color: #1a91ff;
}

.client-mock-section-icon svg {
  width: 17px;
  height: 17px;
}

.client-mock-card__body .form-group {
  margin-bottom: 1rem;
}

.client-mock-card__body .form-label {
  margin-bottom: 0.45rem;
  color: #4b5563;
  font-size: 0.87rem;
  font-weight: 500;
}

.client-mock-card__body .form-control,
.client-mock-card__body .form-select {
  min-height: 42px;
  border: 1px solid #cfd8e3;
  border-radius: 3px;
  box-shadow: none;
  font-size: 0.95rem;
  color: #374151;
}

.client-mock-card__body .form-control::placeholder,
.client-mock-card__body textarea::placeholder {
  color: #9aa4b2;
}

.client-mock-card__body textarea.form-control {
  min-height: 96px;
  padding-top: 0.7rem;
}

.client-mock-card__body .form-control:focus,
.client-mock-card__body .form-select:focus {
  border-color: #1a91ff;
  box-shadow: 0 0 0 2px rgba(26, 145, 255, 0.08);
}

.client-mock-textarea {
  min-height: 140px !important;
}

.client-mock-card__footer {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  padding: 1.25rem;
  border-top: 1px solid #f4f4f4;
  background: #fff;
}

.client-mock-footer-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.38rem;
  min-height: 42px;
  padding: 0.625rem 1.35rem;
  border-radius: 60px !important;
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.5;
  box-shadow: none !important;
  text-decoration: none;
}

.client-mock-footer-btn i {
  font-size: 0.84rem;
  line-height: 1;
}

.app-global-floating-save {
  display: none;
}

.client-mock-card__footer .btn.btn-outline {
  background-image: none !important;
}

.client-mock-card__footer .btn.btn-outline.btn-warning {
  color: #FF9149 !important;
  background-color: transparent !important;
  border-color: #FF9149 !important;
}

.client-mock-card__footer .btn.btn-outline.btn-warning:hover,
.client-mock-card__footer .btn.btn-outline.btn-warning:focus {
  color: #fff !important;
  background-color: #FF9149 !important;
  border-color: #FF9149 !important;
}

.client-mock-card__footer .btn.btn-outline.btn-warning:active,
.client-mock-card__footer .btn.btn-outline.btn-warning.active,
.client-mock-card__footer .show > .btn.btn-outline.btn-warning.dropdown-toggle {
  color: #fff !important;
  background-color: #f99a32 !important;
  border-color: #f99a32 !important;
}

.client-mock-card__footer .btn.btn-outline.btn-primary {
  color: #0f9f8f !important;
  background-color: transparent !important;
  border-color: #0f9f8f !important;
}

.client-mock-card__footer .btn.btn-outline.btn-primary:hover,
.client-mock-card__footer .btn.btn-outline.btn-primary:focus {
  color: #fff !important;
  background-color: #0f9f8f !important;
  border-color: #0f9f8f !important;
}

.client-mock-card__footer .btn.btn-outline.btn-primary:active,
.client-mock-card__footer .btn.btn-outline.btn-primary.active,
.client-mock-card__footer .show > .btn.btn-outline.btn-primary.dropdown-toggle {
  color: #fff !important;
  background-color: #2ba99d !important;
  border-color: #2ba99d !important;
}








.client-mock-history-card {
  margin-top: 1.1rem;
}

.client-mock-history-list {
  display: grid;
  gap: 0.8rem;
}

.client-mock-history-item {
  padding: 0.95rem 1rem;
  border: 1px solid #e4e8ef;
  border-radius: 4px;
  background: #fbfcfe;
}

.client-mock-history-item__title {
  color: #374151;
  font-weight: 600;
}

.client-mock-history-item__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.9rem;
  margin-top: 0.3rem;
  color: #6b7280;
  font-size: 0.88rem;
}

.client-mock-history-item__address {
  margin-top: 0.45rem;
  color: #4b5563;
  font-size: 0.92rem;
  line-height: 1.5;
}

.client-mock-history-item__actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.75rem;
}


.app-dialog-card--xl {
  width: min(980px, calc(100vw - 2rem));
}

.app-dialog-body {
  padding: 0 1rem 0.85rem;
}

.app-dialog--drawer-panel {
  position: fixed;
  inset: 0 0 0 auto;
  width: min(40rem, 100vw);
  max-width: 100vw;
  height: 100dvh;
  max-height: 100dvh;
  margin: 0 0 0 auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: hidden;
  animation: app-dialog-drawer-in 220ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.app-dialog--drawer-panel::backdrop {
  background: rgba(15, 23, 42, 0.38);
  backdrop-filter: blur(3px);
}

.app-dialog--drawer-panel .app-dialog-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 100dvh;
  min-height: 0;
  padding: 0;
  border-radius: 1rem 0 0 1rem;
  overflow: hidden;
}

.app-dialog--drawer-panel .app-dialog-header {
  flex: 0 0 auto;
  margin: 0;
  padding: 1rem 1.15rem;
  border-bottom: 1px solid #e5e7eb;
}

.app-dialog--drawer-panel .app-dialog-body,
.app-dialog--drawer-panel form,
.app-dialog--drawer-panel .event-staff-uniform-panel {
  min-height: 0;
}

.app-dialog--drawer-panel > .app-dialog-card > form,
.app-dialog--drawer-panel .app-dialog-body {
  overflow-y: auto;
  padding: 1rem 1.15rem;
  overscroll-behavior: contain;
}

.app-dialog--drawer-panel .app-dialog-actions {
  position: sticky;
  bottom: 0;
  margin-right: -1.15rem;
  margin-bottom: -1rem;
  margin-left: -1.15rem;
  padding: 0.85rem 1.15rem;
  border-top: 1px solid #e5e7eb;
  background: #fff;
  box-shadow: 0 -0.65rem 1.2rem rgba(15, 23, 42, 0.06);
}

@keyframes app-dialog-drawer-in {
  from {
    opacity: 0.82;
    transform: translateX(100%);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.client-commercial-briefing-card .client-mock-history-card__header {
  align-items: flex-start;
}

.client-commercial-briefing-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.9rem;
  margin-bottom: 1rem;
}

.client-commercial-briefing-item,
.client-commercial-briefing-note {
  border: 1px solid #e4e9f2;
  border-radius: 14px;
  background: #f8fafc;
  padding: 0.9rem 1rem;
}

.client-commercial-briefing-item strong {
  color: #25324b;
  display: block;
}

.client-commercial-briefing-item__label {
  display: block;
  margin-bottom: 0.3rem;
  color: #6a768f;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.client-commercial-briefing-notes {
  display: grid;
  gap: 0.9rem;
}

@media (max-width: 767.98px) {
  .client-mock-card__footer {
    flex-direction: column;
    align-items: stretch;
  }


  .client-mock-history-item__actions {
    flex-direction: column;
    align-items: stretch;
  }
}

@media (max-width: 991.98px) {
  form:has(.app-floating-save-source) {
    padding-bottom: calc(8.5rem + env(safe-area-inset-bottom));
  }

  .app-floating-save-source {
    display: none;
  }

  .app-global-floating-save {
    position: fixed;
    left: 1rem;
    right: 1rem;
    bottom: calc(5.35rem + env(safe-area-inset-bottom));
    z-index: 1036;
    display: inline-flex;
    min-height: 3.1rem;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    border-radius: 999px;
    box-shadow: 0 0.85rem 1.9rem rgba(15, 23, 42, 0.22);
    font-weight: 700;
  }
}


.h1, h1 {
  font-size: 2rem;
}

.h2, h2 {
  font-size: 1.7rem;
}

.h3, h3 {
  font-size: 1.4rem;
}

.h4, h4 {
  font-size: 1.15rem;
}


.dashboard-kpi-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1rem;
}

.dashboard-kpi-grid > .dashboard-kpi-card {
  grid-column: span 3;
}

.dashboard-kpi-grid--compact > .dashboard-kpi-card {
  grid-column: span 4;
}

.dashboard-kpi-card {
  display: block;
  color: inherit;
  text-decoration: none;
}

.dashboard-kpi-card__body {
  border: 1px solid #e8edf4;
  border-radius: 18px;
  background: #fff;
  padding: 1rem 1rem 0.95rem;
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.05);
}

.dashboard-kpi-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.dashboard-kpi-card__top h5 {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: #334155;
}

.dashboard-kpi-card__range {
  font-size: 0.78rem;
  color: #64748b;
}

.dashboard-kpi-card__value {
  margin-top: 0.7rem;
  font-size: 1.95rem;
  line-height: 1.05;
  font-weight: 700;
  color: #0f172a;
}

.dashboard-kpi-card__value small {
  font-size: 0.82rem;
  font-weight: 600;
}

.dashboard-kpi-card__delta--primary { color: #0f9f8f; }
.dashboard-kpi-card__delta--warning { color: #FF9149; }
.dashboard-kpi-card__delta--danger { color: #FF4961; }
.dashboard-kpi-card__delta--success { color: #28D094; }
.dashboard-kpi-card__delta--positive { color: #16a34a; }
.dashboard-kpi-card__delta--neutral { color: #475569; }

.dashboard-kpi-card__spark {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  align-items: end;
  gap: 0.35rem;
  height: 46px;
  margin-top: 0.85rem;
}

.dashboard-kpi-card__spark span {
  display: block;
  border-radius: 999px;
  opacity: 0.95;
}

.dashboard-kpi-card__spark span:nth-child(1) { height: 12px; }
.dashboard-kpi-card__spark span:nth-child(2) { height: 22px; }
.dashboard-kpi-card__spark span:nth-child(3) { height: 16px; }
.dashboard-kpi-card__spark span:nth-child(4) { height: 30px; }
.dashboard-kpi-card__spark span:nth-child(5) { height: 20px; }
.dashboard-kpi-card__spark span:nth-child(6) { height: 36px; }

.dashboard-kpi-card__spark--dark span {
  background: linear-gradient(180deg, #475569 0%, #0f172a 100%);
}

.dashboard-kpi-card__spark--info span {
  background: linear-gradient(180deg, #7dd3fc 0%, #0ea5e9 100%);
}

.dashboard-kpi-card__spark--primary span {
  background: linear-gradient(180deg, #5eead4 0%, #0f9f8f 100%);
}

.dashboard-kpi-card__spark--warning span {
  background: linear-gradient(180deg, #fdba74 0%, #FF9149 100%);
}

.dashboard-kpi-card__spark--danger span {
  background: linear-gradient(180deg, #fda4af 0%, #FF4961 100%);
}

.dashboard-kpi-card__spark--success span {
  background: linear-gradient(180deg, #86efac 0%, #28D094 100%);
}

.commercial-calendar-card {
  width: 100%;
}

.commercial-calendar-card .card-body {
  padding-inline: 1rem;
}

.commercial-calendar-shell,
.commercial-calendar-stage,
.commercial-calendar-stage > #commercialCalendar {
  width: 100%;
  max-width: 100%;
}

.commercial-calendar-stage .fc {
  width: 100% !important;
}

@media (max-width: 1399.98px) {
  .dashboard-kpi-grid > .dashboard-kpi-card {
    grid-column: span 4;
  }
}

@media (max-width: 991.98px) {
  .dashboard-kpi-grid > .dashboard-kpi-card,
  .dashboard-kpi-grid--compact > .dashboard-kpi-card {
    grid-column: span 6;
  }
}

@media (max-width: 575.98px) {
  .dashboard-kpi-grid > .dashboard-kpi-card,
  .dashboard-kpi-grid--compact > .dashboard-kpi-card {
    grid-column: span 12;
  }
}

/* Dashboard pass 2: shell visual de la referencia aprobada. */
body {
  background:
    radial-gradient(circle at 78% 8%, rgba(103, 84, 226, 0.035), transparent 24rem),
    var(--page-bg);
}

.sidebar {
  background:
    radial-gradient(circle at 88% 14%, rgba(91, 63, 207, 0.34), transparent 18rem),
    linear-gradient(180deg, var(--sidebar-bg) 0%, var(--sidebar-bg-dark) 100%) !important;
  border-right-color: rgba(255, 255, 255, 0.07) !important;
  box-shadow: 8px 0 28px rgba(16, 19, 61, 0.1);
}

.sidebar .sidebar-header {
  display: flex;
  align-items: center;
  height: 96px;
  min-height: 96px;
  padding: 0 0.85rem;
  border-bottom-color: rgba(255, 255, 255, 0.08) !important;
}

.sidebar-brand {
  padding: 0;
}

.app-brand-logo {
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255, 197, 55, 0.32);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.25);
}

.app-brand-name {
  font-size: 1.52rem;
  letter-spacing: -0.035em;
}

.sidebar-brand .small {
  margin-top: 0.35rem;
  color: rgba(255, 255, 255, 0.82) !important;
  font-size: 0.69rem;
  line-height: 1.45;
}

.sidebar .sidebar-nav {
  padding: 0.55rem 0.78rem 1rem;
}

.sidebar .nav-title {
  margin: 0.72rem 0 0.38rem 0.25rem;
  color: rgba(224, 228, 255, 0.74);
  font-size: 0.62rem;
  letter-spacing: 0.035em;
}

body .sidebar .sidebar-nav .nav-title {
  font-family: "Poppins", sans-serif !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
}

/* Tablas: sistema List.js de Velzon adaptado a los listados operativos. */
.app-page-shell .table-wrapper,
.app-page-shell .app-volt-table-card,
.app-page-shell .app-mantis-table-card,
.app-page-shell .app-table-responsive {
  overflow: hidden;
  border: 1px solid #e9ebec !important;
  border-radius: 0.25rem;
  background: #fff;
  box-shadow: 0 1px 2px rgba(56, 65, 74, 0.15) !important;
}

.app-page-shell .table-wrapper,
.app-page-shell .app-volt-table-card,
.app-page-shell .app-mantis-table-card {
  padding: 1rem !important;
}

.app-page-shell .app-table-responsive {
  margin: 0;
}

.app-page-shell .app-volt-table,
.app-page-shell .app-table-responsive > .table,
.app-page-shell .table-wrapper > .table {
  margin: -1rem;
  width: calc(100% + 2rem);
  color: #212529;
  font-family: "Poppins", sans-serif;
  font-size: 13px;
}

.app-page-shell .app-volt-table > :not(caption) > * > *,
.app-page-shell .app-table-responsive > .table > :not(caption) > * > *,
.app-page-shell .table-wrapper > .table > :not(caption) > * > * {
  padding: 0.75rem 1rem;
  border-color: #e9ebec;
  font-size: 13px;
  font-weight: 400;
  vertical-align: middle;
}

.app-page-shell .app-volt-table thead,
.app-page-shell .app-table-responsive > .table thead,
.app-page-shell .table-wrapper > .table thead {
  background: #f3f6f9;
  border: 0;
}

.app-page-shell .app-volt-table thead th,
.app-page-shell .app-table-responsive > .table thead th,
.app-page-shell .table-wrapper > .table thead th {
  border: 0 !important;
  color: #212529;
  font-family: "Poppins", sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

body .app-page-shell .app-volt-table thead th,
body .app-page-shell .app-table-responsive > .table thead th,
body .app-page-shell .table-wrapper > .table thead th {
  font-size: 11px !important;
  font-weight: 500 !important;
}

/* Interaccion lateral: comportamiento del menu vertical Velzon. */
.sidebar,
.app-shell {
  transition-duration: 0.1s !important;
  transition-timing-function: ease-out !important;
}

.header .app-sidebar-toggle.vertical-menu-btn {
  width: 42px;
  height: 42px;
  min-height: 42px;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: transparent !important;
  color: #878a99 !important;
  box-shadow: none !important;
}

@media (min-width: 992px) {
  .header .app-sidebar-mobile-toggle.vertical-menu-btn {
    display: inline-flex !important;
  }
}

.header .app-sidebar-toggle.vertical-menu-btn:hover,
.header .app-sidebar-toggle.vertical-menu-btn:focus-visible,
.header .app-sidebar-toggle.vertical-menu-btn.active {
  background: rgba(53, 119, 241, 0.12) !important;
  color: #495057 !important;
}

.hamburger-icon {
  position: relative;
  display: inline-block;
  width: 20px;
  height: 14px;
  cursor: pointer;
}

.hamburger-icon span {
  position: absolute;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  transition: 0.3s cubic-bezier(0.8, 0.5, 0.2, 1.4);
}

.hamburger-icon span:nth-child(1) { top: 0; width: 80%; }
.hamburger-icon span:nth-child(2) { top: 6px; }
.hamburger-icon span:nth-child(3) { bottom: 0; width: 60%; }
.hamburger-icon.open { transform: rotate(-90deg); }
.hamburger-icon.open span:nth-child(1) { top: 5px; left: 1px; width: 20px; transform: rotate(90deg); transition-delay: 150ms; }
.hamburger-icon.open span:nth-child(2) { left: 3px; width: 14px; transform: rotate(45deg); transition-delay: 50ms; }
.hamburger-icon.open span:nth-child(3) { top: 5px; left: 9px; width: 20px; transform: rotate(90deg); transition-delay: 150ms; }

body.desktop-sidebar-collapsed .sidebar,
body.desktop-sidebar-collapsed .app-shell {
  transition-duration: 0.1s !important;
  transition-timing-function: ease-out !important;
}

body.desktop-sidebar-collapsed .sidebar .nav-link {
  width: 70px;
  min-height: 42px;
  height: 42px;
}

body.desktop-sidebar-collapsed .sidebar .nav-item + .nav-item {
  margin-top: 0;
}

/* Velzon sm mode: every collapsed entry keeps its own compact row. CoreUI's
   default flex: 1 on .nav-link otherwise stretches the active item. */
body.desktop-sidebar-collapsed .sidebar .nav-item > .nav-link {
  flex: 0 0 42px !important;
  height: 42px !important;
  min-height: 42px !important;
  max-height: 42px !important;
}

body.desktop-sidebar-collapsed .sidebar .app-sidebar-group-toggle {
  width: 42px !important;
  height: 42px !important;
  min-height: 42px !important;
  max-height: 42px !important;
  padding: 0 !important;
  overflow: hidden;
}

body.desktop-sidebar-collapsed .sidebar .app-sidebar-group-chevron,
body.desktop-sidebar-collapsed .sidebar .app-sidebar-group-chevron svg,
body.desktop-sidebar-collapsed .sidebar .app-sidebar-subnav,
body.desktop-sidebar-collapsed .sidebar .app-sidebar-subnav::before,
body.desktop-sidebar-collapsed .sidebar .app-sidebar-subnav .nav-link::before,
body.desktop-sidebar-collapsed .sidebar .app-sidebar-subnav .nav-link::after {
  display: none !important;
  content: none !important;
}

body.desktop-sidebar-hover .sidebar,
body.desktop-sidebar-hover .app-shell {
  width: var(--app-sidebar-collapsed-width) !important;
  min-width: var(--app-sidebar-collapsed-width) !important;
  max-width: var(--app-sidebar-collapsed-width) !important;
  padding-left: var(--app-sidebar-collapsed-width) !important;
}

@media (max-width: 991.98px) {
  .header .app-sidebar-toggle.vertical-menu-btn {
    width: 42px;
    height: 42px;
  }

  .sidebar {
    transition: transform 0.3s ease-out !important;
  }
}

.app-page-shell .app-volt-table tbody tr,
.app-page-shell .app-table-responsive > .table tbody tr,
.app-page-shell .table-wrapper > .table tbody tr {
  background: #fff;
}

.app-page-shell .app-volt-table tbody tr:hover,
.app-page-shell .app-volt-table tbody tr:hover > *,
.app-page-shell .app-table-responsive > .table tbody tr:hover,
.app-page-shell .app-table-responsive > .table tbody tr:hover > *,
.app-page-shell .table-wrapper > .table tbody tr:hover,
.app-page-shell .table-wrapper > .table tbody tr:hover > * {
  background: #f3f6f9;
}

.app-page-shell .table .badge {
  display: inline-flex;
  align-items: center;
  min-height: 1.45rem;
  padding: 0.25rem 0.55rem;
  border: 0;
  border-radius: 0.25rem;
  font-family: "Poppins", sans-serif;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.035em;
  line-height: 1;
  text-transform: uppercase;
}

.app-page-shell .table .badge.text-bg-success { background: rgba(10, 179, 156, 0.1) !important; color: #0ab39c !important; }
.app-page-shell .table .badge.text-bg-warning { background: rgba(247, 184, 75, 0.1) !important; color: #d49000 !important; }
.app-page-shell .table .badge.text-bg-danger { background: rgba(240, 101, 72, 0.1) !important; color: #f06548 !important; }
.app-page-shell .table .badge.text-bg-primary { background: rgba(64, 81, 137, 0.1) !important; color: #405189 !important; }
.app-page-shell .table .badge.text-bg-secondary { background: #f3f6f9 !important; color: #878a99 !important; }

.app-page-shell .app-tailadmin-light-btn,
.app-page-shell .table .btn-success,
.app-page-shell .table .btn-primary {
  min-height: 2.35rem;
  border-radius: 0.25rem !important;
  background: #0ab39c !important;
  border-color: #0ab39c !important;
  box-shadow: none !important;
  color: #fff !important;
  font-family: "Poppins", sans-serif;
  font-size: 13px;
  font-weight: 400;
}

.app-page-shell .app-tailadmin-light-btn:hover,
.app-page-shell .table .btn-success:hover,
.app-page-shell .table .btn-primary:hover {
  background: #099885 !important;
  border-color: #099885 !important;
}

.app-page-shell .table .btn-outline-secondary,
.app-page-shell .table .btn-soft-danger {
  border-radius: 0.25rem !important;
  font-family: "Poppins", sans-serif;
  font-size: 13px;
  font-weight: 400;
}

.app-page-shell .table .btn-outline-secondary {
  border-color: #e9ebec;
  color: #878a99;
}

.app-page-shell .table .btn-soft-danger {
  background: rgba(240, 101, 72, 0.1);
  border-color: transparent;
  color: #f06548;
}

@media (max-width: 575.98px) {
  .app-page-shell .table-wrapper,
  .app-page-shell .app-volt-table-card,
  .app-page-shell .app-mantis-table-card {
    padding: 0.65rem !important;
  }

  .app-page-shell .app-volt-table,
  .app-page-shell .app-table-responsive > .table,
  .app-page-shell .table-wrapper > .table {
    margin: -0.65rem;
    width: calc(100% + 1.3rem);
  }
}

.sidebar .nav-link {
  min-height: 39px;
  margin-bottom: 0.14rem;
  padding: 0.6rem 0.68rem;
  border-radius: 8px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.76rem;
  font-weight: 600;
  gap: 0.62rem;
}

.sidebar .nav-link:hover {
  background: rgba(255, 255, 255, 0.075);
  color: #fff;
}

.sidebar .nav-link.active,
.sidebar .nav-link[aria-current="page"] {
  background: linear-gradient(90deg, rgba(82, 55, 183, 0.94), rgba(67, 42, 147, 0.88));
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(167, 142, 255, 0.12), 0 8px 18px rgba(18, 12, 64, 0.18);
}

.sidebar .app-sidebar-icon,
.sidebar .app-sidebar-icon svg {
  width: 17px;
  height: 17px;
}

.sidebar .sidebar-footer {
  padding: 0.85rem !important;
  border-top-color: rgba(255, 255, 255, 0.07) !important;
  background: rgba(8, 10, 37, 0.62);
}

.sidebar .sidebar-footer .btn {
  min-height: 40px;
  padding: 0.55rem 0.75rem;
  border-color: rgba(255, 255, 255, 0.24) !important;
  border-radius: 8px !important;
  color: #fff !important;
  font-size: 0.75rem;
  font-weight: 600;
}

.sidebar .sidebar-nav .nav-title,
.sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .app-sidebar-label,
.sidebar .sidebar-nav .app-sidebar-group-title,
.sidebar .sidebar-footer .btn {
  font-weight: 400 !important;
}

.sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .app-sidebar-label,
.sidebar .sidebar-nav .app-sidebar-group-title {
  font-size: 1rem;
}

.sidebar .sidebar-nav .nav-title {
  font-size: 80%;
}

.header {
  min-height: 76px;
  margin-bottom: 0 !important;
  border-bottom-color: #e9ebf2;
  box-shadow: 0 3px 14px rgba(24, 30, 64, 0.025);
}

.app-header-row {
  min-height: 75px;
}

@media (min-width: 992px) {
  .header .app-sidebar-toggle {
    margin-left: -0.9rem;
  }
}

.container-fluid.app-page-shell {
  padding: 18px !important;
  padding-bottom: 2.5rem !important;
}

.header .app-notification-toggle {
  width: 38px;
  height: 38px;
  min-height: 38px;
  padding: 0;
  border-color: transparent !important;
  background: transparent !important;
  color: #111827 !important;
}

.header .app-notification-toggle:hover,
.header .app-notification-toggle:focus-visible {
  background: #f4f2ff !important;
  color: #5136bc !important;
}

.app-notification-badge {
  top: -0.15rem;
  right: -0.05rem;
  background: #f04461;
}

.app-profile-menu {
  position: relative;
}

.app-profile-menu > summary {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  list-style: none;
  cursor: pointer;
}

.app-profile-menu > summary::-webkit-details-marker {
  display: none;
}

.app-profile-copy {
  gap: 0.1rem;
  min-width: 90px;
  text-align: left;
}

.app-profile-copy strong {
  color: #151827;
  font-size: 0.74rem;
  font-weight: 700;
}

.app-profile-copy span {
  color: #697086;
  font-size: 0.67rem;
}

.app-profile-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  background: #f0edff;
  color: #684be0;
  font-size: 0.83rem;
  font-weight: 600;
}

.app-profile-popover {
  position: absolute;
  top: calc(100% + 0.7rem);
  right: 0;
  z-index: 1100;
  width: 180px;
  padding: 0.75rem;
  border: 1px solid #e6e8f0;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(26, 31, 67, 0.16);
  text-align: left;
}

.app-profile-popover__name {
  margin-bottom: 0.55rem;
  color: #111827;
  font-size: 0.75rem;
  font-weight: 700;
}

.app-profile-popover a {
  color: #5d43d2;
  font-size: 0.75rem;
  text-decoration: none;
}

@media (max-width: 991.98px) {
  .sidebar {
    background:
      radial-gradient(circle at 88% 14%, rgba(91, 63, 207, 0.34), transparent 18rem),
      linear-gradient(180deg, var(--sidebar-bg) 0%, var(--sidebar-bg-dark) 100%) !important;
  }

  .container-fluid.app-page-shell {
    padding: 0.9rem !important;
    padding-bottom: 7.2rem !important;
  }
}

/* Sistema visual compartido: reutiliza la densidad aprobada del dashboard. */
.app-page-shell {
  color: #151827;
  font-size: 0.9rem;
}

.app-page-shell h1,
.app-page-shell h2,
.app-page-shell h3,
.app-page-shell h4,
.app-page-shell h5,
.app-page-shell h6 {
  color: #20243a;
  letter-spacing: 0;
}

.app-page-shell h1,
.app-page-shell h2 {
  font-size: 1.25rem;
  font-weight: 700;
}

.app-page-shell h3,
.app-page-shell h4,
.app-page-shell h5 {
  font-size: 0.95rem;
  font-weight: 700;
}

.app-page-shell .text-body-secondary,
.app-page-shell .small {
  color: #747a8d !important;
}

.app-page-shell .card {
  border: 1px solid #e8e9f0;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(27, 34, 73, 0.045) !important;
  overflow: hidden;
}

.app-page-shell .card-header {
  min-height: 58px;
  padding: 0.9rem 1.05rem;
  border-bottom: 1px solid #ececf2;
  background: #fff;
  color: #20243a;
  font-size: 0.86rem;
  font-weight: 700;
}

.app-page-shell .card-body {
  padding: 1rem;
}

.app-page-shell .table {
  margin-bottom: 0;
  color: #4a5065;
}

.app-page-shell .table > :not(caption) > * > * {
  padding: 0.78rem 0.85rem;
  border-color: #ececf2;
  font-size: 0.78rem;
  vertical-align: middle;
}

.app-page-shell .table thead th {
  border-bottom: 1px solid #ececf2;
  background: #fff;
  color: #292d42;
  font-size: 0.68rem;
  font-weight: 700;
}

.app-page-shell .table tbody tr {
  transition: background 160ms ease;
}

.app-page-shell .table tbody tr:hover {
  background: #fbfbfe;
}

.app-page-shell .btn {
  min-height: 36px;
  border-radius: 6px !important;
  font-size: 0.72rem;
  font-weight: 600;
}

.app-page-shell .btn-sm {
  min-height: 30px;
  padding: 0.32rem 0.65rem;
  font-size: 0.68rem;
}

.app-page-shell .btn-outline-primary {
  border-color: #99f6e4 !important;
  background: #fff !important;
  color: #0f766e !important;
}

.app-page-shell .btn-outline-primary:hover,
.app-page-shell .btn-outline-primary:focus-visible {
  border-color: #0f9f8f !important;
  background: #ecfdf9 !important;
  color: #0b8579 !important;
}

.app-page-shell .form-label {
  color: #20243a;
  font-size: 0.78rem;
  font-weight: 700;
}

.app-page-shell .form-control,
.app-page-shell .form-select,
.app-page-shell textarea.form-control {
  min-height: 42px;
  border-color: #dfe3ec;
  border-radius: 8px;
  color: #20243a;
  font-size: 0.84rem;
}

.app-page-shell .form-control:focus,
.app-page-shell .form-select:focus {
  border-color: #cfc8f8;
  box-shadow: 0 0 0 4px rgba(91, 66, 220, 0.1);
}

.app-page-shell .badge {
  border-radius: 5px;
  font-size: 0.62rem;
  font-weight: 600;
}

.app-page-shell .alert {
  border-radius: 9px;
  font-size: 0.82rem;
}

@media (max-width: 575.98px) {
  .app-page-shell h1,
  .app-page-shell h2 {
    font-size: 1.1rem;
  }

  .app-page-shell .card-header,
  .app-page-shell .card-body {
    padding-left: 0.85rem;
    padding-right: 0.85rem;
  }
}


.commercial-calendar-shell {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
}

.commercial-calendar-stage {
  width: 100% !important;
  max-width: 100% !important;
}

#commercialCalendar,
#commercialCalendar .fc,
#commercialCalendar .fc-view-harness,
#commercialCalendar .fc-scrollgrid,
#commercialCalendar .fc-col-header,
#commercialCalendar .fc-timegrid-body,
#commercialCalendar .fc-timegrid-cols table,
#commercialCalendar .fc-timegrid-slots table {
  width: 100% !important;
  max-width: 100% !important;
}

.dashboard-kpi-card__value {
  margin-bottom: 0;
}

.dashboard-kpi-card__body {
  min-height: 138px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}


.dashboard-kpi-card__title-wrap {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
}

.dashboard-kpi-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  flex: 0 0 auto;
}

.dashboard-kpi-card__icon svg {
  width: 1.15rem;
  height: 1.15rem;
}

.dashboard-kpi-card__icon--dark {
  background: #e2e8f0;
  color: #334155;
}

.dashboard-kpi-card__icon--info {
  background: #e0f2fe;
  color: #0284c7;
}

.dashboard-kpi-card__icon--primary {
  background: #e0e7ff;
  color: #4f46e5;
}

.dashboard-kpi-card__icon--warning {
  background: #ffedd5;
  color: #ea580c;
}

.dashboard-kpi-card__icon--danger {
  background: #ffe4e6;
  color: #e11d48;
}

.dashboard-kpi-card__icon--success {
  background: #dcfce7;
  color: #16a34a;
}

.dashboard-kpi-card__value {
  font-size: 3.9rem;
  line-height: 0.95;
  letter-spacing: -0.04em;
}

.dashboard-kpi-card__value small {
  font-size: 0.88rem;
  margin-left: 0.35rem;
}

.logistics-stat-card__summary {
  padding: 0.9rem 1rem;
  border-radius: 12px;
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
}

.badge.text-bg-draft,
.app-status-badge--borrador {
  background: #fff1e8 !important;
  color: #c26a1b !important;
  border: 1px solid #f6c99e !important;
}

.badge.text-bg-preparing,
.app-status-badge--en-preparacion {
  background: #fff7d6 !important;
  color: #9a6b00 !important;
  border: 1px solid #f4dd8a !important;
}

.badge.text-bg-confirmed,
.app-status-badge--confirmado {
  background: #e5f8eb !important;
  color: #18794e !important;
  border: 1px solid #b7e8c8 !important;
}

.badge.text-bg-service,
.app-status-badge--en-servicio {
  background: #e8f2ff !important;
  color: #2459c2 !important;
  border: 1px solid #bfd6ff !important;
}

.badge.text-bg-closed,
.app-status-badge--cerrado {
  background: #edf2f7 !important;
  color: #475569 !important;
  border: 1px solid #d8e0ea !important;
}

.badge.text-bg-cancelled,
.app-status-badge--cancelado {
  background: #fee2e2 !important;
  color: #991b1b !important;
  border: 1px solid #fecaca !important;
}


.app-event-nav-shell {
  width: 100%;
}

.app-event-nav-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
  width: 100%;
}

.app-event-nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 42px;
  padding: 0.72rem 0.9rem;
  text-align: center;
  white-space: nowrap;
}

@media (max-width: 991.98px) {
  .app-event-nav-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .app-event-nav-grid {
    grid-template-columns: 1fr;
  }
}


.app-recipe-table td[data-label="Cantidad por pizza"] .form-control,
.app-event-pizzas-table .form-control {
  min-height: 42px;
}

.app-ingredients-need-table td,
.app-event-pizzas-table td,
.app-recipe-table td {
  vertical-align: middle;
}

.app-event-steps-shell {
  width: 100%;
  overflow-x: auto;
  padding: 0.15rem 0 0.35rem;
}

.app-event-steps {
  --event-step-accent: #f97316;
  --event-step-muted: #d8dee8;
  display: grid;
  grid-template-columns: repeat(5, minmax(96px, 1fr));
  min-width: 520px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.app-event-step {
  position: relative;
  min-width: 0;
}

.app-event-step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 18px;
  left: calc(50% + 22px);
  right: calc(-50% + 22px);
  height: 3px;
  border-radius: 999px;
  background: var(--event-step-muted);
  z-index: 0;
}

.app-event-step.is-done:not(:last-child)::after,
.app-event-step.is-active:not(:last-child)::after {
  background: var(--event-step-accent);
}

.app-event-step__form {
  position: relative;
  z-index: 1;
  margin: 0;
}

.app-event-step__button {
  display: grid;
  justify-items: center;
  gap: 0.5rem;
  width: 100%;
  border: 0;
  background: transparent;
  color: #64748b;
  text-align: center;
}

.app-event-step__button:focus-visible {
  outline: 3px solid rgba(249, 115, 22, 0.3);
  outline-offset: 4px;
  border-radius: 0.8rem;
}

.app-event-step__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 2px solid var(--event-step-muted);
  border-radius: 999px;
  background: #fff;
  color: #64748b;
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1;
}

.app-event-step__text {
  display: grid;
  gap: 0.15rem;
  max-width: 112px;
}

.app-event-step__label {
  color: #334155;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.15;
}

.app-event-step__note {
  color: #94a3b8;
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1.2;
}

.app-event-step.is-done .app-event-step__number,
.app-event-step.is-active .app-event-step__number {
  border-color: var(--event-step-accent);
  background: var(--event-step-accent);
  color: #fff;
}

.app-event-step.is-active .app-event-step__label {
  color: #9a3412;
}

.app-event-steps-current {
  padding: 0.85rem 0.95rem;
  border: 1px solid #fed7aa;
  border-radius: 0.85rem;
  background: #fff7ed;
  color: #7c2d12;
}

.col-lg-4 .app-event-steps-shell {
  overflow-x: visible;
}

.col-lg-4 .app-event-steps {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  min-width: 0;
}

.col-lg-4 .app-event-step:not(:last-child)::after {
  left: calc(50% + 19px);
  right: calc(-50% + 19px);
}

.col-lg-4 .app-event-step__number {
  width: 34px;
  height: 34px;
}

.col-lg-4 .app-event-step__label {
  font-size: 0.72rem;
}

.col-lg-4 .app-event-step__note {
  display: none;
}

@media (max-width: 575.98px) {
  .app-event-steps {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    min-width: 0;
  }

  .col-lg-4 .app-event-steps {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    min-width: 0;
  }

  .app-event-step.is-mobile-hidden {
    display: none;
  }

  .app-event-step.is-mobile-context:not(:last-child)::after {
    left: calc(50% + 18px);
    right: calc(-50% + 18px);
  }

  .app-event-step__button {
    gap: 0.42rem;
    padding: 0 0.1rem;
  }

  .app-event-step__number {
    width: 34px;
    height: 34px;
  }

  .app-event-step__text {
    max-width: 96px;
  }

  .app-event-step__label {
    font-size: 0.72rem;
  }

  .app-event-step__note {
    display: none;
  }
}

@media (max-width: 991.98px) {
  :root {
    --app-mobile-header-height: 5rem;
  }

  .header {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 1050;
  }

  .wrapper,
  .body,
  .app-shell,
  .app-embedded-shell {
    overflow: visible !important;
  }

  .body.flex-grow-1 {
    padding-top: calc(var(--app-mobile-header-height) + env(safe-area-inset-top));
  }

  .app-header-row {
    min-height: var(--app-mobile-header-height);
    padding-top: calc(0.65rem + env(safe-area-inset-top));
    padding-bottom: 0.65rem;
  }

  .header .container-fluid {
    position: relative;
    z-index: 2;
  }
}

/* Dashboard de referencia: replica la densidad y proporciones del diseño aprobado. */
.dashboard-reference {
  color: #111827;
  font-size: 0.9rem;
}

.dashboard-reference .dashboard-kpi-grid {
  gap: 0.85rem;
  margin-bottom: 1rem !important;
}

.dashboard-reference .dashboard-kpi-card__body {
  min-height: 114px;
  padding: 0.8rem 0.85rem 0.75rem;
  border-color: #e7ebf0;
  border-radius: 14px;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.045);
}

.dashboard-reference .dashboard-kpi-card__title-wrap {
  gap: 0.55rem;
}

.dashboard-reference .dashboard-kpi-card__icon {
  width: 1.95rem;
  height: 1.95rem;
}

.dashboard-reference .dashboard-kpi-card__icon svg {
  width: 1rem;
  height: 1rem;
}

.dashboard-reference .dashboard-kpi-card__top h5 {
  font-size: 0.82rem;
  font-weight: 700;
}

.dashboard-reference .dashboard-kpi-card__range {
  font-size: 0.67rem;
}

.dashboard-reference .dashboard-kpi-card__value {
  margin-top: 0.6rem;
  font-size: 3.25rem;
  line-height: 0.9;
}

.dashboard-reference > .row {
  --cui-gutter-x: 1rem;
  --cui-gutter-y: 1rem;
}

.dashboard-reference .card {
  border-color: #e4e8ed;
  border-radius: 7px;
  box-shadow: 0 7px 20px rgba(15, 23, 42, 0.045) !important;
  overflow: hidden;
}

.dashboard-reference .card-header {
  min-height: 52px;
  padding: 0.85rem 1rem;
  font-size: 0.82rem;
  font-weight: 700;
}

.dashboard-reference .card-body {
  padding: 1rem;
}

.dashboard-reference .table {
  margin-bottom: 0;
}

.dashboard-reference .table > :not(caption) > * > * {
  padding: 0.7rem 0.65rem;
  border-color: #e4e8ed;
  font-size: 0.82rem;
}

.dashboard-reference .logistics-stat-card {
  padding: 0.8rem 0.9rem;
  border-radius: 10px;
  background: linear-gradient(180deg, #fff 0%, #fbf9f7 100%);
}

.dashboard-reference .logistics-stat-card__summary {
  padding: 0.75rem 0.85rem;
  border-radius: 9px;
}

.dashboard-reference .logistics-stat-card .alert {
  border-radius: 4px;
  line-height: 1.25;
}

.dashboard-reference .dashboard-review-qr {
  width: 184px;
  border-radius: 8px;
  padding: 0.6rem;
}

@media (max-width: 991.98px) {
  .dashboard-reference .dashboard-kpi-card__body {
    min-height: 108px;
  }

  .dashboard-reference .dashboard-kpi-card__value {
    font-size: 3rem;
  }
}

@media (max-width: 575.98px) {
  .dashboard-reference .dashboard-kpi-grid {
    gap: 0.75rem;
  }

  .dashboard-reference .dashboard-kpi-card__body {
    min-height: 104px;
  }

  .dashboard-reference .card-header,
  .dashboard-reference .card-body {
    padding-left: 0.85rem;
    padding-right: 0.85rem;
  }
}

/* Dashboard pass 2: KPIs con minigráficas. */
.dashboard-reference .dashboard-kpi-grid {
  gap: 12px;
  margin-bottom: 16px !important;
}

.dashboard-reference .dashboard-kpi-card__body {
  min-height: 132px;
  padding: 16px 17px 14px;
  border: 1px solid #e9eaf1;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(30, 37, 75, 0.055);
}

.dashboard-reference .dashboard-kpi-card__top {
  align-items: flex-start;
}

.dashboard-reference .dashboard-kpi-card__title-wrap {
  align-items: center;
  gap: 12px;
}

.dashboard-reference .dashboard-kpi-card__icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
}

.dashboard-reference .dashboard-kpi-card__icon svg {
  width: 21px;
  height: 21px;
}

.dashboard-reference .dashboard-kpi-card__icon--dark {
  background: #f0eaff;
  color: #6b4ee6;
}

.dashboard-reference .dashboard-kpi-card__icon--info {
  background: #e7f4ff;
  color: #1687f8;
}

.dashboard-reference .dashboard-kpi-card__icon--primary {
  background: #ffebf2;
  color: #f04782;
}

.dashboard-reference .dashboard-kpi-card__icon--success {
  background: #e8f8ed;
  color: #27a95c;
}

.dashboard-kpi-card__label {
  display: grid;
  gap: 4px;
}

.dashboard-reference .dashboard-kpi-card__top h5 {
  color: #20243a;
  font-size: 0.72rem;
  font-weight: 700;
  white-space: nowrap;
}

.dashboard-kpi-card__label > span {
  color: #7b8195;
  font-size: 0.64rem;
  font-weight: 500;
}

.dashboard-kpi-card__bottom {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
}

.dashboard-reference .dashboard-kpi-card__value {
  margin: 0;
  color: #15192c;
  font-size: 2.15rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.045em;
}

.dashboard-kpi-card__line {
  width: min(78px, 46%);
  height: 28px;
  overflow: visible;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.35;
}

.dashboard-kpi-card__line--purple { stroke: #7759f2; }
.dashboard-kpi-card__line--blue { stroke: #258ef5; }
.dashboard-kpi-card__line--pink { stroke: #f14f88; }
.dashboard-kpi-card__line--green { stroke: #31aa64; }

@media (min-width: 992px) {
  .dashboard-reference .dashboard-kpi-grid > .dashboard-kpi-card {
    grid-column: span 3;
  }
}

@media (max-width: 991.98px) {
  .dashboard-reference .dashboard-kpi-card__body {
    min-height: 126px;
  }
}

@media (max-width: 575.98px) {
  .dashboard-reference .dashboard-kpi-card__top h5 {
    white-space: normal;
  }
}

/* Dashboard pass 2: próximos eventos. */
.dashboard-reference .dashboard-events-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.175);
  border-radius: 0.375rem;
  box-shadow: 0 0 1px rgba(33, 37, 41, 0.125), 0 1px 3px rgba(33, 37, 41, 0.2) !important;
}

.dashboard-reference .dashboard-events-card > .card-header {
  background: rgba(33, 37, 41, 0.03);
  border-bottom: 1px solid rgba(0, 0, 0, 0.175);
}

.dashboard-reference .dashboard-events-card > .dashboard-card-footer {
  border-top: 1px solid rgba(0, 0, 0, 0.175);
}

.dashboard-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 64px !important;
  padding: 13px 18px !important;
}

.dashboard-section-title {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #1a1e33;
  font-size: 1rem;
  font-weight: 700;
}

.dashboard-section-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  color: #6548e4;
}

.dashboard-section-icon svg,
.dashboard-section-action svg {
  width: 18px;
  height: 18px;
}

.dashboard-section-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 36px;
  padding: 0.45rem 0.75rem;
  border-color: #99f6e4 !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: #0f766e !important;
  font-size: 0.7rem;
  font-weight: 600;
}

.dashboard-section-action:hover,
.dashboard-section-action:focus-visible {
  border-color: #0f9f8f !important;
  background: #ecfdf9 !important;
  color: #0b8579 !important;
}

.dashboard-reference .dashboard-events-table thead th {
  padding: 13px 18px;
  border-bottom: 1px solid #ececf2;
  background: #fff;
  color: #292d42;
  font-size: 0.65rem;
  font-weight: 700;
}

/* Give the dashboard column labels a clear breathing space below the section title. */
body .app-page-shell .dashboard-reference .dashboard-events-table thead th {
  padding: 16px 18px !important;
  line-height: 18px;
}

.dashboard-reference .dashboard-events-table tbody td {
  padding: 12px 18px;
  border-bottom: 1px solid #ececf2;
  color: #4a5065;
  font-size: 0.68rem;
}

.dashboard-events-table th:first-child,
.dashboard-events-table td:first-child {
  width: 32%;
}

.dashboard-events-table .app-primary-row-link {
  color: #22263b;
  font-weight: 600;
}

.dashboard-event-date {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

.dashboard-event-date svg {
  width: 15px;
  height: 15px;
  color: #5f667b;
}

.dashboard-reference .dashboard-events-table .app-status-badge {
  padding: 0.34rem 0.55rem;
  border-radius: 5px;
  font-size: 0.6rem;
  font-weight: 600;
  text-transform: none;
}

.dashboard-row-actions {
  display: inline-flex;
  align-items: center;
  gap: 18px;
}

.dashboard-row-actions .btn {
  min-width: 48px;
  min-height: 29px;
  padding: 0.3rem 0.65rem;
  border-color: #99f6e4 !important;
  border-radius: 6px !important;
  color: #0f766e !important;
  font-size: 0.63rem;
}

.dashboard-kebab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 30px;
  color: #555c70;
  font-size: 1rem;
  line-height: 1;
  text-decoration: none;
}

.dashboard-card-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  border-top: 1px solid #ececf2;
  background: #fff;
}

.dashboard-card-footer a {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #5b3ed3;
  font-size: 0.68rem;
  font-weight: 600;
  text-decoration: none;
}

.dashboard-card-footer a span {
  font-size: 1.05rem;
}

@media (max-width: 767.98px) {
  .dashboard-section-header {
    align-items: flex-start;
  }

  .dashboard-section-action {
    min-width: 44px;
  }

  .dashboard-reference .dashboard-events-table tbody td {
    padding: 0.7rem 0.85rem;
  }

  .dashboard-row-actions {
    display: grid;
    grid-template-columns: 1fr 44px;
    width: 100%;
  }
}

/* Dashboard pass 2: estado de stock. */
.dashboard-reference .dashboard-stock-card {
  min-height: 80px;
  border: 1px solid #e8e9f0;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(27, 34, 73, 0.04) !important;
}

.dashboard-stock-card__body {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 16px;
  min-height: 80px;
  padding: 12px 17px;
}

.dashboard-stock-card__icon,
.dashboard-stock-card__status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
}

.dashboard-stock-card__icon {
  width: 42px;
  height: 42px;
  background: #f0eaff;
  color: #6547dd;
}

.dashboard-stock-card__status {
  width: 40px;
  height: 40px;
}

.dashboard-stock-card.is-clear .dashboard-stock-card__status {
  background: #e5f8eb;
  color: #25a75a;
}

.dashboard-stock-card.has-alerts .dashboard-stock-card__status {
  background: #fff1df;
  color: #d97706;
}

.dashboard-stock-card__icon svg,
.dashboard-stock-card__status svg {
  width: 21px;
  height: 21px;
}

.dashboard-stock-card__copy {
  min-width: 0;
}

.dashboard-stock-card__title {
  margin-bottom: 4px;
  color: #1e2237;
  font-size: 0.9rem;
  font-weight: 700;
}

.dashboard-stock-card__subtitle {
  color: #7a8093;
  font-size: 0.67rem;
}

.dashboard-stock-card__items {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 10px;
  margin-top: 6px;
  color: #9a5d08;
  font-size: 0.62rem;
}

@media (min-width: 768px) {
  .dashboard-reference .dashboard-events-table tbody td {
    padding-top: 10px;
    padding-bottom: 10px;
  }

  .dashboard-events-table th:first-child,
  .dashboard-events-table td:first-child {
    width: 35%;
  }
}

@media (max-width: 575.98px) {
  .dashboard-stock-card__body {
    grid-template-columns: auto 1fr;
  }

  .dashboard-stock-card__status {
    grid-column: 1 / -1;
    justify-self: end;
    margin-top: -44px;
  }
}

/* Dashboard pass 2: logística, margen y reseñas. */
.dashboard-operations-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.78fr) minmax(250px, 0.92fr);
  gap: 12px;
  margin-top: 16px;
}

.dashboard-reference .dashboard-logistics-card,
.dashboard-reference .dashboard-margin-card {
  display: flex;
  min-height: 620px;
  flex-direction: column;
  border: 1px solid #e8e9f0;
  border-radius: 12px;
}

.dashboard-section-heading {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px;
  border-bottom: 1px solid #ececf2;
}

.dashboard-section-heading__title {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #20243a;
  font-size: 0.86rem;
  font-weight: 700;
}

.dashboard-section-heading__icon {
  display: inline-flex;
  width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  color: #5d45df;
}

.dashboard-section-heading__icon svg {
  width: 22px;
  height: 22px;
}

.dashboard-section-heading__meta {
  color: #666d82;
  font-size: 0.62rem;
  white-space: nowrap;
}

.dashboard-logistics-card__body {
  flex: 1;
  padding: 12px;
}

.dashboard-logistics-list {
  display: grid;
  gap: 10px;
}

.dashboard-logistics-item {
  display: block;
  padding: 10px;
  border: 1px solid #e7e8ee;
  border-radius: 10px;
  color: inherit;
  text-decoration: none;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.dashboard-logistics-item:hover,
.dashboard-logistics-item:focus-visible {
  border-color: #cfc8f8;
  box-shadow: 0 8px 20px rgba(61, 45, 143, 0.08);
  color: inherit;
  transform: translateY(-1px);
}

.dashboard-logistics-item__summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 10px 12px;
  border: 1px solid #ececf1;
  border-radius: 9px;
  background: #f7f7f9;
}

.dashboard-logistics-item__copy {
  min-width: 0;
}

.dashboard-logistics-item__title,
.dashboard-logistics-alert__title {
  color: #292d42;
  font-size: 0.7rem;
  font-weight: 700;
}

.dashboard-logistics-item__meta,
.dashboard-logistics-item__departure,
.dashboard-logistics-alert__body {
  color: #747a8d;
  font-size: 0.61rem;
}

.dashboard-logistics-item__departure {
  margin-top: 5px;
}

.dashboard-logistics-item__cost {
  color: #292d42;
  font-size: 0.65rem;
  font-weight: 700;
  white-space: nowrap;
}

.dashboard-logistics-item__alerts {
  display: grid;
  gap: 6px;
  margin-top: 7px;
}

.dashboard-logistics-alert {
  padding: 7px 10px;
  border: 1px solid transparent;
  border-radius: 5px;
}

.dashboard-logistics-alert--primary,
.dashboard-logistics-alert--info {
  border-color: #ddd8ff;
  background: linear-gradient(90deg, #efedff, #f6f3ff);
}

.dashboard-logistics-alert--primary .dashboard-logistics-alert__title,
.dashboard-logistics-alert--info .dashboard-logistics-alert__title {
  color: #4a3db0;
}

.dashboard-logistics-alert--warning {
  border-color: #ffe39a;
  background: linear-gradient(90deg, #fff3c5, #fff7d9);
}

.dashboard-logistics-alert--warning .dashboard-logistics-alert__title {
  color: #8b6504;
}

.dashboard-empty-state {
  padding: 20px;
  color: #7b8193;
  font-size: 0.72rem;
}

.dashboard-margin-card__heading {
  min-height: 58px;
  padding: 20px 18px 12px;
  color: #20243a;
  font-size: 0.86rem;
  font-weight: 700;
}

.dashboard-margin-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: stretch;
  padding: 12px 18px 18px;
}

.dashboard-margin-chart {
  position: relative;
  display: grid;
  width: min(176px, 82%);
  aspect-ratio: 1;
  margin: 10px auto 25px;
  place-items: center;
  border-radius: 50%;
  background: conic-gradient(#f17b9c 0 calc(100% - var(--margin-share)), #75c99a calc(100% - var(--margin-share)) 100%);
}

.dashboard-margin-chart::before {
  position: absolute;
  width: 72%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #fff;
  content: "";
}

.dashboard-margin-chart.is-pending {
  background: conic-gradient(#e3e1f0 0 74%, #f1eff8 74% 100%);
}

.dashboard-margin-chart.has-margin {
  box-shadow: inset 7px 0 0 rgba(113, 91, 220, 0.9);
}

.dashboard-margin-chart__center {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 3px;
  color: #72788c;
  font-size: 0.62rem;
  text-align: center;
}

.dashboard-margin-chart__center strong {
  color: #20243a;
  font-size: 1.45rem;
  letter-spacing: -0.04em;
}

.dashboard-margin-legend {
  display: grid;
  gap: 12px;
}

.dashboard-margin-legend__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 52px 65px;
  align-items: center;
  gap: 8px;
  color: #697084;
  font-size: 0.64rem;
}

.dashboard-margin-legend__row strong {
  color: #697084;
  font-weight: 500;
  text-align: right;
}

.dashboard-margin-legend__label {
  display: flex;
  align-items: center;
  gap: 8px;
}

.dashboard-margin-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.dashboard-margin-dot--cost { background: #f17b9c; }
.dashboard-margin-dot--margin { background: #75c99a; }

.dashboard-margin-card__note {
  margin: 34px 0 0;
  color: #7a8092;
  font-size: 0.64rem;
  line-height: 1.55;
}

.dashboard-card-footer {
  display: flex;
  min-height: 45px;
  align-items: center;
  justify-content: center;
  margin-top: auto;
  border-top: 1px solid #ececf2;
  color: #5f42dc;
  font-size: 0.67rem;
  font-weight: 600;
}

.dashboard-card-footer a,
.dashboard-card-footer span {
  color: inherit;
  text-decoration: none;
}

.dashboard-card-footer a > span,
.dashboard-card-footer span > span {
  margin-left: 10px;
  font-size: 1rem;
}

.dashboard-reference .dashboard-reviews-card {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr) 190px;
  min-height: 166px;
  margin-top: 16px;
  border: 1px solid #e8e9f0;
  border-radius: 12px;
}

.dashboard-reviews-card__visual {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 13px 14px 0;
  overflow: hidden;
  border-radius: 12px 12px 0 12px;
  background: linear-gradient(135deg, #352091 0%, #5f2acb 62%, #6734de 100%);
  color: #fff;
}

.dashboard-reviews-card__visual h2,
.dashboard-reviews-card__visual p,
.dashboard-reviews-card__copy h3,
.dashboard-reviews-card__copy p {
  margin: 0;
}

.dashboard-reviews-card__visual h2 {
  font-size: 1rem;
  font-weight: 700;
}

.dashboard-reviews-card__visual p {
  margin-top: 3px;
  font-size: 0.61rem;
  opacity: 0.9;
}

.dashboard-review-assets {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 8px;
}

.dashboard-review-phone {
  display: flex;
  width: 84px;
  height: 105px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 6px solid #20222b;
  border-bottom: 0;
  border-radius: 18px 18px 0 0;
  background: #fff;
  color: #4285f4;
  font-size: 0.8rem;
  font-weight: 700;
  transform: rotate(6deg) translateY(8px);
}

.dashboard-review-phone div {
  color: #f7b817;
  font-size: 0.55rem;
  letter-spacing: 1px;
}

.dashboard-reference .dashboard-review-qr {
  width: 93px;
  height: 93px;
  padding: 6px;
  border-radius: 7px;
  background: #fff;
  object-fit: contain;
}

.dashboard-reviews-card__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 24px 20px;
}

.dashboard-reviews-card__copy h3 {
  color: #20243a;
  font-size: 0.82rem;
  font-weight: 700;
}

.dashboard-reviews-card__copy p {
  max-width: 390px;
  margin-top: 10px;
  color: #7a8092;
  font-size: 0.68rem;
  line-height: 1.55;
}

.dashboard-review-button {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  gap: 12px;
  margin-top: 14px;
  padding: 9px 14px;
  border-radius: 5px;
  background: #6040dc;
  color: #fff;
  font-size: 0.66rem;
  font-weight: 600;
  text-decoration: none;
}

.dashboard-review-button:hover,
.dashboard-review-button:focus-visible {
  background: #4f32c4;
  color: #fff;
}

.dashboard-reviews-card__rating {
  position: relative;
  display: grid;
  place-items: center;
}

.dashboard-review-bubble {
  position: relative;
  padding: 15px 17px;
  border: 1px solid #e6e7ec;
  border-radius: 13px;
  box-shadow: 0 8px 18px rgba(26, 30, 56, 0.08);
  background: #fff;
  color: #ffbd23;
  font-size: 1.25rem;
  letter-spacing: 2px;
}

.dashboard-review-bubble::after {
  position: absolute;
  right: 28px;
  bottom: -9px;
  width: 17px;
  height: 17px;
  border-right: 1px solid #e6e7ec;
  border-bottom: 1px solid #e6e7ec;
  background: #fff;
  content: "";
  transform: rotate(45deg);
}

.dashboard-review-heart {
  position: absolute;
  right: 25px;
  bottom: 25px;
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 50%;
  background: #ffe8ee;
  color: #f37b99;
  font-size: 1.2rem;
}

.dashboard-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 54px;
  padding: 0 10px;
  color: #8a90a0;
  font-size: 0.58rem;
}

@media (max-width: 991.98px) {
  .dashboard-operations-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-reference .dashboard-logistics-card,
  .dashboard-reference .dashboard-margin-card {
    min-height: auto;
  }

  .dashboard-reference .dashboard-reviews-card {
    grid-template-columns: 210px minmax(0, 1fr);
  }

  .dashboard-reviews-card__rating {
    display: none;
  }
}

@media (max-width: 575.98px) {
  .dashboard-section-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .dashboard-section-heading__meta {
    padding-left: 40px;
  }

  .dashboard-logistics-item__summary {
    flex-direction: column;
  }

  .dashboard-reference .dashboard-reviews-card {
    grid-template-columns: 1fr;
  }

  .dashboard-reviews-card__visual {
    min-height: 205px;
    border-radius: 12px 12px 0 0;
  }

  .dashboard-reviews-card__copy {
    padding: 22px 18px;
  }

  .dashboard-review-phone {
    height: 115px;
  }

  .dashboard-footer {
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
  }
}

/* AdminLTE Small Box reference: #KPI-ADMINLTE-SMALLBOX-001. */
.dashboard-reference .dashboard-kpi-card--adminlte {
  position: relative;
  display: block;
  min-height: 132px;
  overflow: hidden;
  border: 0;
  border-radius: 7px;
  color: #fff;
  background: linear-gradient(135deg, #0d6efd 0%, #5a49e8 100%);
  box-shadow: 0 10px 24px rgba(13, 110, 253, 0.22);
}

.dashboard-reference .dashboard-kpi-card--adminlte:hover,
.dashboard-reference .dashboard-kpi-card--adminlte:focus-visible {
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(13, 110, 253, 0.26);
}

.dashboard-reference .dashboard-kpi-card--adminlte .dashboard-small-box__inner {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 2px;
  padding: 16px 18px 13px;
}

.dashboard-reference .dashboard-kpi-card--adminlte .dashboard-small-box__inner h3 {
  margin: 0;
  color: #fff;
  font-size: 2.35rem;
  font-weight: 700;
  line-height: 1;
}

.dashboard-reference .dashboard-kpi-card--adminlte .dashboard-small-box__inner p {
  margin: 0;
  color: rgba(255, 255, 255, 0.96);
  font-size: 0.92rem;
  font-weight: 700;
}

.dashboard-reference .dashboard-kpi-card--adminlte .dashboard-small-box__inner span {
  color: rgba(255, 255, 255, 0.76);
  font-size: 0.72rem;
  font-weight: 600;
}

.dashboard-reference .dashboard-kpi-card--adminlte .dashboard-small-box__icon {
  position: absolute;
  right: 14px;
  top: 14px;
  width: 76px;
  height: 76px;
  color: rgba(255, 255, 255, 0.34);
  transform: rotate(-8deg);
}

.dashboard-reference .dashboard-kpi-card--adminlte .dashboard-small-box__footer {
  position: absolute;
  inset: auto 0 0 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 7px 12px;
  background: rgba(0, 0, 0, 0.16);
  color: rgba(255, 255, 255, 0.94);
  font-size: 0.76rem;
  font-weight: 700;
}

@media (max-width: 575.98px) {
  .dashboard-reference .dashboard-kpi-card--adminlte {
    min-height: 122px;
  }

  .dashboard-reference .dashboard-kpi-card--adminlte .dashboard-small-box__inner h3 {
    font-size: 2.1rem;
  }
}

.dashboard-reference .dashboard-kpi-card--adminlte-green {
  background: linear-gradient(135deg, #6ed7a5 0%, #30b57b 100%);
  box-shadow: 0 10px 24px rgba(48, 181, 123, 0.2);
}

.dashboard-reference .dashboard-kpi-card--adminlte-yellow {
  color: #241a06;
  background: linear-gradient(135deg, #ffe8a3 0%, #f7c85c 100%);
  box-shadow: 0 10px 24px rgba(247, 200, 92, 0.22);
}

.dashboard-reference .dashboard-kpi-card--adminlte-yellow:hover,
.dashboard-reference .dashboard-kpi-card--adminlte-yellow:focus-visible {
  color: #241a06;
  box-shadow: 0 16px 34px rgba(247, 200, 92, 0.28);
}

.dashboard-reference .dashboard-kpi-card--adminlte-yellow .dashboard-small-box__inner h3,
.dashboard-reference .dashboard-kpi-card--adminlte-yellow .dashboard-small-box__inner p {
  color: #241a06;
}

.dashboard-reference .dashboard-kpi-card--adminlte-yellow .dashboard-small-box__inner span,
.dashboard-reference .dashboard-kpi-card--adminlte-yellow .dashboard-small-box__footer {
  color: rgba(36, 26, 6, 0.72);
}

.dashboard-reference .dashboard-kpi-card--adminlte-yellow .dashboard-small-box__icon {
  color: rgba(36, 26, 6, 0.26);
}

.dashboard-reference .dashboard-kpi-card--adminlte-purple {
  background: linear-gradient(135deg, #c9b8ff 0%, #8e72ee 100%);
  box-shadow: 0 10px 24px rgba(142, 114, 238, 0.22);
}

/* Metronic-inspired sidebar minimize control and hover expansion. */
.sidebar {
  z-index: 1040;
  transition: width 180ms ease, min-width 180ms ease, max-width 180ms ease, flex-basis 180ms ease, box-shadow 180ms ease;
}

.sidebar-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.45rem;
  margin-left: auto;
}

.app-sidebar-minimize-toggle {
  position: static;
  flex: 0 0 auto;
  z-index: 8;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.86);
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18);
  transition: color 160ms ease, background-color 160ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.app-sidebar-minimize-toggle:hover,
.app-sidebar-minimize-toggle:focus-visible {
  color: #fff;
  background: rgba(255, 255, 255, 0.2);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.22);
}

.app-sidebar-minimize-toggle svg {
  width: 18px;
  height: 18px;
  transition: transform 180ms ease;
}

.app-sidebar-minimize-toggle.active svg {
  transform: rotate(180deg);
}

body.desktop-sidebar-hover .sidebar {
  box-shadow: 18px 0 42px rgba(15, 23, 42, 0.2);
}

body.desktop-sidebar-hover .sidebar-brand {
  padding-left: 0.8rem;
  padding-right: 0.8rem;
}

body.desktop-sidebar-hover .sidebar-brand .d-flex {
  justify-content: flex-start;
  gap: 0.75rem;
}

body.desktop-sidebar-hover .app-brand-copy,
body.desktop-sidebar-hover .app-sidebar-label,
body.desktop-sidebar-hover .sidebar .nav-title {
  opacity: 1;
  max-width: 180px;
  max-height: 40px;
  transform: none;
  pointer-events: auto;
}

body.desktop-sidebar-hover .sidebar .nav-item {
  justify-content: stretch;
}

body.desktop-sidebar-hover .sidebar .nav-link {
  justify-content: flex-start;
  gap: 0.65rem;
  width: 100%;
  height: auto;
  padding: 0.7rem 0.8rem;
  border-radius: 7px;
}

@media (min-width: 992px) {
  .app-sidebar-mobile-toggle {
    display: none !important;
  }
}

@media (max-width: 991.98px) {
  .app-header-title {
    font-size: 0.95rem;
  }
}

/* Volt-inspired tables. */
.app-volt-table-card {
  border-radius: 7px;
  overflow: visible;
}

.app-volt-bulk-select {
  max-width: 200px;
}

.app-volt-table {
  margin-bottom: 0;
}

.app-volt-table thead th {
  color: #6b7280;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  white-space: nowrap;
}

.app-volt-table tbody td {
  padding-top: 0.95rem;
  padding-bottom: 0.95rem;
  vertical-align: middle;
}

.app-volt-table .avatar {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  color: #fff;
  background: #64748b !important;
}

.app-volt-table .text-gray {
  color: #6b7280;
}

.app-volt-table .icon {
  width: 18px;
  height: 18px;
}

.app-volt-table .icon-xs {
  width: 18px;
  height: 18px;
}

/* Mantis-inspired compact table treatment for leads. */
.app-mantis-table-card {
  padding: 0;
  border: 1px solid #e6ebf1 !important;
  border-radius: 4px;
  box-shadow: none !important;
  overflow: visible;
}

.app-mantis-table {
  width: 100%;
  margin-bottom: 0;
  color: #262626;
}

.app-mantis-table > :not(caption) > * > * {
  padding: 12px;
  border-color: #f0f0f0;
  font-size: 0.875rem;
  vertical-align: middle;
  white-space: nowrap;
}

.app-mantis-table thead {
  background: #fafafa;
  border-top: 1px solid #f0f0f0;
  border-bottom: 2px solid #f0f0f0;
}

.app-mantis-table thead th {
  color: #262626;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
  background: #fafafa;
  border-bottom: 0 !important;
}

.app-mantis-table th:first-child,
.app-mantis-table td:first-child {
  padding-left: 24px;
}

.app-mantis-table th:last-child,
.app-mantis-table td:last-child {
  padding-right: 24px;
}

.app-mantis-table tbody tr:last-child > * {
  border-bottom: 0;
}

.app-mantis-table tbody tr:hover > * {
  background: rgba(0, 0, 0, 0.04);
}

.app-leads-mantis-table .app-primary-row-link {
  color: inherit;
}

.app-leads-mantis-table .avatar {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
}

.app-leads-mantis-name {
  color: #262626;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.57;
}

.app-mantis-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #262626;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.57;
  white-space: nowrap;
}

.app-mantis-status__dot {
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  border-radius: 999px;
  background: #64748b;
}

.app-mantis-status--primary .app-mantis-status__dot {
  background: #1677ff;
}

.app-mantis-status--secondary .app-mantis-status__dot {
  background: #64748b;
}

.app-mantis-status--success .app-mantis-status__dot {
  background: #16a34a;
}

.app-mantis-status--warning .app-mantis-status__dot {
  background: #f59e0b;
}

.app-mantis-status--info .app-mantis-status__dot {
  background: #0ea5e9;
}

.app-mantis-status--danger .app-mantis-status__dot {
  background: #dc2626;
}

.app-mantis-status--dark .app-mantis-status__dot {
  background: #262626;
}

.event-alert-progress {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  align-items: center;
  gap: 1rem;
  min-height: 108px;
}

.event-alert-progress__chart {
  position: relative;
  width: 108px;
  height: 108px;
  min-width: 108px;
  min-height: 108px;
  max-width: 108px;
  max-height: 108px;
}

.event-alert-progress__chart canvas {
  display: block;
  width: 108px !important;
  height: 108px !important;
  max-width: 108px;
  max-height: 108px;
}

.event-alert-progress__fallback {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #262626;
  font-size: 0.875rem;
  font-weight: 600;
  pointer-events: none;
}

.event-alert-progress__copy {
  min-width: 0;
}

.event-alert-progress__value {
  color: #262626;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.25;
}

.event-alert-progress__label {
  color: #64748b;
  font-size: 0.875rem;
  line-height: 1.57;
}

.dashboard-dropdown {
  min-width: 160px;
  border: 0;
  border-radius: 7px;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.16);
}

.app-row-action .dashboard-dropdown {
  right: 0;
  left: auto;
  max-width: min(18rem, calc(100vw - 2rem));
}

.dashboard-dropdown.dashboard-dropdown-portal {
  position: fixed !important;
  z-index: 1200;
  margin: 0 !important;
  transform: none !important;
}

.lead-briefing-sections {
  border-top: 1px solid #e5e7eb;
  padding-top: 1.25rem;
}

.lead-briefing-sections__heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.lead-briefing-sections__heading h3 {
  margin: 0;
  color: #111827;
  font-size: 1rem;
  font-weight: 700;
}

.lead-briefing-sections__heading p {
  margin: 0.2rem 0 0;
  color: #64748b;
  font-size: 0.82rem;
}

.lead-briefing-sections__heading > span {
  flex: 0 0 auto;
  border: 1px solid #d1fae5;
  border-radius: 6px;
  padding: 0.3rem 0.55rem;
  background: #ecfdf5;
  color: #047857;
  font-size: 0.75rem;
  font-weight: 700;
}

.lead-briefing-sections__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.lead-briefing-section {
  min-width: 0;
  border: 1px solid #e5e7eb;
  border-radius: 7px;
  background: #fff;
}

.lead-briefing-section h4 {
  margin: 0;
  border-bottom: 1px solid #e5e7eb;
  padding: 0.75rem 0.9rem;
  color: #111827;
  font-size: 0.84rem;
  font-weight: 700;
}

.lead-briefing-section dl {
  margin: 0;
}

.lead-briefing-section dl > div {
  display: grid;
  grid-template-columns: minmax(8.5rem, 0.9fr) minmax(0, 1.1fr);
  gap: 0.75rem;
  padding: 0.65rem 0.9rem;
}

.lead-briefing-section dl > div + div {
  border-top: 1px solid #f1f5f9;
}

.lead-briefing-section dt,
.lead-briefing-section dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  font-size: 0.78rem;
  line-height: 1.45;
}

.lead-briefing-section dt {
  color: #64748b;
  font-weight: 600;
}

.lead-briefing-section dd {
  color: #1f2937;
  font-weight: 600;
}

@media (max-width: 767.98px) {
  .lead-briefing-sections__grid {
    grid-template-columns: 1fr;
  }

  .lead-briefing-section dl > div {
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }
}

.dashboard-check .form-check-input {
  width: 1.05rem;
  height: 1.05rem;
}

/* Volt-inspired FullCalendar shell. */
.volt-calendar-card {
  border-radius: 7px;
}

.volt-calendar-card #commercialCalendar {
  min-height: 680px;
}

.volt-calendar-card .fc .fc-toolbar {
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.volt-calendar-card .fc .fc-toolbar-title {
  color: #111827;
  font-size: 1.35rem;
  font-weight: 700;
}

.volt-calendar-card .fc .fc-button {
  border: 0;
  border-radius: 7px;
  background: #1f3a8a;
  box-shadow: none;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: capitalize;
}

.volt-calendar-card .fc .fc-button:hover,
.volt-calendar-card .fc .fc-button:focus {
  background: #172b66;
}

.volt-calendar-card .fc-scrollgrid,
.volt-calendar-card .fc-theme-standard td,
.volt-calendar-card .fc-theme-standard th {
  border-color: #e5e7eb;
}

.volt-calendar-card .fc-col-header-cell-cushion,
.volt-calendar-card .fc-daygrid-day-number {
  color: #4b5563;
  text-decoration: none;
}

.volt-calendar-card .fc-daygrid-day-frame {
  min-height: 118px;
  padding: 0.35rem;
}

.volt-calendar-card .fc-event {
  border: 0;
  border-radius: 6px;
  padding: 0.15rem 0.35rem;
  font-size: 0.76rem;
  font-weight: 700;
}

.volt-calendar-card .bg-blue { background: #1d4ed8 !important; }
.volt-calendar-card .bg-green { background: #16a34a !important; }
.volt-calendar-card .bg-yellow { background: #f59e0b !important; color: #241a06 !important; }
.volt-calendar-card .bg-purple { background: #7c3aed !important; }

/* CoolAdmin calendar replica, scoped to /calendar. */
.cooladmin-calendar-page {
  --cooladmin-bg: #f4f6fa;
  --cooladmin-surface: #ffffff;
  --cooladmin-surface-2: #f8fafc;
  --cooladmin-border: #e4e7ec;
  --cooladmin-divider: #f1f3f5;
  --cooladmin-text: #1f2937;
  --cooladmin-muted: #475569;
  --cooladmin-faint: #94a3b8;
  --cooladmin-accent: #4272d7;
  --cooladmin-accent-hover: #355cb8;
  --cooladmin-accent-soft: #eaf0fc;
  --cooladmin-teal: #11998e;
  --cooladmin-teal-soft: #e0f3f1;
  --cooladmin-orange: #f97316;
  --cooladmin-orange-soft: #fff1e6;
  --cooladmin-pink: #ec4899;
  --cooladmin-pink-soft: #fce7f3;
  --cooladmin-danger: #ef4444;
  --cooladmin-danger-soft: #fef2f2;
  --cooladmin-radius-sm: 6px;
  --cooladmin-radius: 10px;
  --cooladmin-shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.04);
  margin: -0.25rem -0.25rem 0;
  padding: 0.25rem;
  color: var(--cooladmin-text);
  font-family: "Inter", "Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-feature-settings: "cv11", "ss01", "ss03";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.cooladmin-calendar-page,
.cooladmin-calendar-page * {
  letter-spacing: 0;
}

.cooladmin-page-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

.cooladmin-page-header h1 {
  margin: 0;
  color: var(--cooladmin-text);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.25;
}

.cooladmin-page-header .subtitle {
  margin: 4px 0 0;
  color: var(--cooladmin-muted);
  font-size: 13.5px;
  line-height: 1.45;
}

.cooladmin-page-header__actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.cooladmin-m-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 36px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: var(--cooladmin-radius-sm);
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease, transform 80ms ease;
}

.cooladmin-m-btn:active {
  transform: translateY(0.5px);
}

.cooladmin-m-btn svg {
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
}

.cooladmin-m-btn--primary {
  background: var(--cooladmin-accent);
  color: #fff;
  border-color: var(--cooladmin-accent);
}

.cooladmin-m-btn--primary:hover,
.cooladmin-m-btn--primary:focus {
  background: #4338ca;
  border-color: #4338ca;
  color: #fff;
}

.cooladmin-m-btn--ghost {
  background: var(--cooladmin-surface);
  color: var(--cooladmin-text);
  border-color: var(--cooladmin-border);
}

.cooladmin-m-btn--ghost:hover,
.cooladmin-m-btn--ghost:focus {
  background: var(--cooladmin-surface-2);
  color: var(--cooladmin-text);
}

.cooladmin-calendar-grid {
  --bs-gutter-x: 16px;
  --bs-gutter-y: 16px;
}

.cooladmin-m-card {
  background: var(--cooladmin-surface);
  border: 1px solid var(--cooladmin-border);
  border-radius: var(--cooladmin-radius);
  box-shadow: var(--cooladmin-shadow-xs);
  padding: 20px;
}

.cooladmin-m-card--stacked {
  margin-top: 16px;
}

.cooladmin-m-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: -4px 0 16px;
}

.cooladmin-m-card__title {
  margin: 0;
  color: var(--cooladmin-text);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
}

.cooladmin-m-card__subtitle {
  margin: 2px 0 0;
  color: var(--cooladmin-muted);
  font-size: 12.5px;
  line-height: 1.45;
}

.cooladmin-calendar-container {
  min-height: 680px;
  padding: 4px;
}

.cooladmin-calendar-page .fc {
  --fc-border-color: var(--cooladmin-divider);
  --fc-button-bg-color: var(--cooladmin-accent);
  --fc-button-border-color: var(--cooladmin-accent);
  --fc-button-text-color: #ffffff;
  --fc-button-hover-bg-color: var(--cooladmin-accent-hover);
  --fc-button-hover-border-color: var(--cooladmin-accent-hover);
  --fc-button-active-bg-color: var(--cooladmin-accent);
  --fc-button-active-border-color: var(--cooladmin-accent);
  --fc-today-bg-color: var(--cooladmin-accent-soft);
  font-family: inherit;
}

.cooladmin-calendar-page .fc .fc-toolbar.fc-header-toolbar {
  margin-bottom: 1rem;
}

.cooladmin-calendar-page .fc .fc-toolbar-title {
  color: var(--cooladmin-text);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
}

.cooladmin-calendar-page .fc .fc-button {
  height: 34px;
  padding: 0 12px;
  border-radius: 8px;
  background: var(--cooladmin-accent) !important;
  border-color: var(--cooladmin-accent) !important;
  color: #ffffff !important;
  box-shadow: none;
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1;
  text-transform: capitalize;
}

.cooladmin-calendar-page .fc .fc-button:hover,
.cooladmin-calendar-page .fc .fc-button:focus {
  background: var(--cooladmin-accent-hover) !important;
  border-color: var(--cooladmin-accent-hover) !important;
  color: #ffffff !important;
}

.cooladmin-calendar-page .fc .fc-button:disabled {
  background: var(--cooladmin-accent) !important;
  border-color: var(--cooladmin-accent) !important;
  color: #ffffff !important;
  opacity: 0.65;
}

.cooladmin-calendar-page .fc .fc-button-primary:not(:disabled).fc-button-active,
.cooladmin-calendar-page .fc .fc-button-primary:not(:disabled):active {
  background: var(--cooladmin-accent-hover) !important;
  border-color: var(--cooladmin-accent-hover) !important;
  color: #fff !important;
}

.cooladmin-calendar-page .fc .fc-icon {
  color: #ffffff;
}

.cooladmin-calendar-page .fc .fc-view-harness {
  border: none;
}

.cooladmin-calendar-page .fc .fc-scrollgrid {
  overflow: hidden;
  border: 1px solid var(--cooladmin-divider);
  border-radius: var(--cooladmin-radius);
}

.cooladmin-calendar-page .fc-theme-standard td,
.cooladmin-calendar-page .fc-theme-standard th {
  border-color: var(--cooladmin-divider);
}

.cooladmin-calendar-page .fc .fc-col-header-cell-cushion {
  padding: 8px 4px;
  color: var(--cooladmin-faint);
  font-size: 11px;
  font-weight: 500;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.cooladmin-calendar-page .fc .fc-daygrid-day-number {
  padding: 6px 8px;
  color: var(--cooladmin-text);
  font-size: 13px;
  text-decoration: none;
}

.cooladmin-calendar-page .fc .fc-daygrid-day-frame {
  min-height: 118px;
}

.cooladmin-calendar-page .fc .fc-day-today .fc-daygrid-day-number {
  color: var(--cooladmin-accent);
  font-weight: 600;
}

.cooladmin-calendar-page .fc .fc-event {
  margin: 2px 4px;
  padding: 2px 6px;
  border: 0 !important;
  border-radius: 4px;
  box-shadow: none;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
}

.cooladmin-calendar-page .fc .fc-event:hover {
  filter: brightness(0.95);
}

.cooladmin-calendar-page .fc .cooladmin-event--meeting {
  background: var(--cooladmin-accent-soft) !important;
  border-color: var(--cooladmin-accent-soft) !important;
  color: var(--cooladmin-accent) !important;
}

.cooladmin-calendar-page .fc .cooladmin-event--task {
  background: var(--cooladmin-teal-soft) !important;
  border-color: var(--cooladmin-teal-soft) !important;
  color: var(--cooladmin-teal) !important;
}

.cooladmin-calendar-page .fc .cooladmin-event--appointment {
  background: var(--cooladmin-orange-soft) !important;
  border-color: var(--cooladmin-orange-soft) !important;
  color: var(--cooladmin-orange) !important;
}

.cooladmin-calendar-page .fc .cooladmin-event--deadline {
  background: var(--cooladmin-danger-soft) !important;
  border-color: var(--cooladmin-danger-soft) !important;
  color: var(--cooladmin-danger) !important;
}

.cooladmin-calendar-page .fc .cooladmin-event--presentation {
  background: var(--cooladmin-pink-soft) !important;
  border-color: var(--cooladmin-pink-soft) !important;
  color: #be185d !important;
}

.cooladmin-deadline-list,
.cooladmin-legend-list {
  padding: 0;
  margin: 0;
  list-style: none;
}

.cooladmin-deadline-list > li {
  display: flex;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--cooladmin-divider);
}

.cooladmin-deadline-list > li:last-child {
  border-bottom: 0;
}

.cooladmin-deadline-list > li[role="link"] {
  cursor: pointer;
}

.cooladmin-deadline-list > li[role="link"]:hover .cooladmin-deadline-list__title {
  color: var(--cooladmin-accent);
}

.cooladmin-deadline-list__date {
  flex: 0 0 44px;
  padding: 6px 0;
  border-radius: var(--cooladmin-radius-sm);
  background: var(--cooladmin-accent-soft);
  color: var(--cooladmin-accent);
  line-height: 1;
  text-align: center;
}

.cooladmin-deadline-list__date strong {
  display: block;
  margin-bottom: 2px;
  font-size: 16px;
  font-weight: 700;
}

.cooladmin-deadline-list__date span {
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.cooladmin-deadline-list__body {
  flex: 1;
  min-width: 0;
}

.cooladmin-deadline-list__title {
  margin: 2px 0;
  color: var(--cooladmin-text);
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.3;
  transition: color 120ms ease;
}

.cooladmin-deadline-list__project,
.cooladmin-deadline-list__empty {
  color: var(--cooladmin-faint);
  font-size: 12px;
  line-height: 1.35;
}

.cooladmin-deadline-list__empty {
  display: block !important;
  padding: 14px 0 !important;
  border-bottom: 0 !important;
}

.cooladmin-legend-list > li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 0;
  color: var(--cooladmin-text);
  font-size: 13px;
  line-height: 1.35;
}

.cooladmin-legend-dot {
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  border-radius: 4px;
}

.cooladmin-legend-dot--meeting { background: var(--cooladmin-accent); }
.cooladmin-legend-dot--task { background: var(--cooladmin-teal); }
.cooladmin-legend-dot--appointment { background: var(--cooladmin-orange); }
.cooladmin-legend-dot--deadline { background: var(--cooladmin-danger); }
.cooladmin-legend-dot--presentation { background: var(--cooladmin-pink); }

@media (max-width: 991.98px) {
  .cooladmin-calendar-grid > [class*="col-"] {
    margin-bottom: 12px;
  }
}

@media (max-width: 575.98px) {
  .cooladmin-calendar-page {
    margin: 0;
    padding: 0;
  }

  .cooladmin-page-header {
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
  }

  .cooladmin-page-header h1 {
    font-size: 20px;
  }

  .cooladmin-page-header .subtitle {
    font-size: 13px;
  }

  .cooladmin-page-header__actions {
    width: 100%;
    flex-wrap: wrap;
  }

  .cooladmin-m-card {
    padding: 14px;
  }

  .cooladmin-m-card__header {
    flex-wrap: wrap;
    gap: 10px;
  }

  .cooladmin-m-card__title {
    font-size: 13.5px;
  }

  .cooladmin-calendar-container {
    min-height: 620px;
  }

  .cooladmin-calendar-page .fc .fc-toolbar.fc-header-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }

  .cooladmin-calendar-page .fc .fc-toolbar-title {
    font-size: 14px;
    text-align: center;
  }

  .cooladmin-calendar-page .fc .fc-daygrid-day-frame {
    min-height: 96px;
  }

  .cooladmin-deadline-list > li {
    padding: 8px 0;
  }

  .cooladmin-deadline-list__title {
    font-size: 13px;
  }
}

@media (max-width: 379.98px) {
  .cooladmin-page-header__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .cooladmin-page-header__actions .cooladmin-m-btn {
    width: 100%;
  }
}


.login-brand-mark {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-bottom: 1rem;
}

.login-brand-mark img {
  width: 96px;
  height: 96px;
  object-fit: contain;
  display: block;
}

@media (max-width: 575.98px) {
  .login-brand-mark {
    justify-content: center;
  }

  .login-brand-mark img {
    width: 88px;
    height: 88px;
  }
}



.event-call-client-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-family: var(--font-sneat-buttons);
  font-weight: 700;
}

.app-sneat-event-action {
  display: inline-flex;
  min-height: 2.35rem;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.55rem 1rem;
  border: 1px solid transparent;
  border-radius: 50rem;
  box-shadow: 0 0.125rem 0.25rem rgba(33, 37, 41, 0.08);
  font-family: var(--font-sneat-buttons);
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.1;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, color 160ms ease, transform 160ms ease;
  white-space: nowrap;
}

.app-sneat-event-action:hover,
.app-sneat-event-action:focus-visible {
  text-decoration: none;
  transform: translateY(-1px);
}

.app-sneat-event-action--call {
  border-color: #0f9f8f;
  background: #0f9f8f;
  color: #fff;
  box-shadow: 0 0.125rem 0.25rem rgba(15, 159, 143, 0.32);
}

.app-sneat-event-action--call:hover,
.app-sneat-event-action--call:focus-visible {
  border-color: #0b8579;
  background: #0b8579;
  color: #fff;
  box-shadow: 0 0.25rem 0.7rem rgba(15, 159, 143, 0.28);
}

.app-sneat-event-action--edit {
  border-color: #99f6e4;
  background: #ecfdf9;
  color: #0f766e;
}

.app-sneat-event-action--edit:hover,
.app-sneat-event-action--edit:focus-visible {
  border-color: #0f9f8f;
  background: #ccfbf1;
  color: #0b8579;
}

.app-sneat-event-action--danger {
  border-color: #fecdd3;
  background: #fff1f2;
  color: #be123c;
}

.app-sneat-event-action--danger:hover,
.app-sneat-event-action--danger:focus-visible {
  border-color: #fb7185;
  background: #ffe4e6;
  color: #9f1239;
}

.event-call-client-btn svg {
  width: 1.05rem;
  height: 1.05rem;
}

.app-volt-table .btn-group {
  position: relative;
}



@media (max-width: 991.98px) {
  .event-detail-header {
    align-items: stretch !important;
  }

  .event-detail-actions {
    width: 100%;
  }

  .event-call-client-btn {
    width: 100%;
    justify-content: center;
    min-height: 46px;
    order: -2;
  }

  .app-clickable-table .app-row-action .btn-group {
    display: block;
    width: 100%;
  }

  .app-clickable-table .dashboard-dropdown.show {
    position: static !important;
    display: block;
    width: 100%;
    min-width: 0;
    margin-top: 0.55rem !important;
    transform: none !important;
    bottom: auto !important;
    margin-bottom: calc(6rem + env(safe-area-inset-bottom)) !important;
  }

  .app-clickable-table .dashboard-dropdown .dropdown-item {
    white-space: normal;
    min-height: 42px;
  }
}



/* AdminLTE-inspired info boxes for event metrics. */
.event-info-box-grid {
  --event-info-box-radius: 0.375rem;
}

.event-info-box {
  font-family: var(--font-main);
  position: relative;
  display: flex;
  width: 100%;
  min-height: 80px;
  height: 100%;
  padding: 0.5rem;
  margin-bottom: 0;
  overflow: hidden;
  color: #212529;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: var(--event-info-box-radius);
  background-color: #fff;
  box-shadow: 0 0.125rem 0.25rem rgba(15, 23, 42, 0.12);
}

.event-info-box-link {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

.event-info-box-link:hover,
.event-info-box-link:focus-visible {
  color: inherit;
  border-color: rgba(249, 115, 22, 0.35);
  box-shadow: 0 0.75rem 1.5rem rgba(15, 23, 42, 0.12);
  transform: translateY(-1px);
}

.event-responsive-disclosure > summary {
  cursor: pointer;
  list-style: none;
}

.event-responsive-disclosure > summary::-webkit-details-marker {
  display: none;
}

.event-responsive-disclosure > summary::after {
  content: "+";
  display: none;
  margin-left: auto;
  color: #64748b;
  font-size: 1.1rem;
  font-weight: 700;
}

.event-responsive-disclosure[open] > summary::after {
  content: "-";
}

.event-incident-card .card-body {
  display: grid;
  gap: 0.9rem;
}

.event-incident-actions {
  display: grid;
  gap: 0.65rem;
}

.event-incident-action {
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #f8fafc;
}

.event-incident-action > summary {
  cursor: pointer;
  list-style: none;
  padding: 0.75rem 0.85rem;
  font-weight: 700;
}

.event-incident-action > summary::-webkit-details-marker {
  display: none;
}

.event-incident-form {
  padding: 0 0.85rem 0.85rem;
}

.event-incident-log {
  display: grid;
  gap: 0.2rem;
  padding: 0.75rem 0;
  border-top: 1px solid #eef2f7;
}

.event-incident-log:first-of-type {
  border-top: 0;
  padding-top: 0;
}

@media (min-width: 992px) {
  .event-responsive-disclosure:not([open]) > .card-body {
    display: block !important;
  }
}

@media (max-width: 991.98px) {
  .event-responsive-disclosure > summary::after {
    display: inline-flex;
  }
}

.event-info-box .info-box-icon {
  display: flex;
  width: 70px;
  min-width: 70px;
  align-items: center;
  justify-content: center;
  border-radius: var(--event-info-box-radius);
  text-align: center;
  color: currentColor;
}

.event-info-box .info-box-icon svg {
  width: 1.875rem;
  height: 1.875rem;
  display: block;
  fill: currentColor;
  stroke: currentColor;
}

.event-info-box .info-box-content {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: center;
  padding: 0 10px;
  line-height: 1.8;
}

.event-info-box .info-box-text {
  display: block;
  overflow: hidden;
  color: #475569;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.25;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.event-info-box .info-box-number {
  display: block;
  margin-top: 0.42rem;
  color: #0f172a;
  font-size: clamp(0.66rem, 0.92vw, 0.9rem);
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.08;
  overflow-wrap: anywhere;
}

.event-info-box .info-box-number small {
  font-size: 0.68em;
  font-weight: 700;
}

.event-info-box .info-box-subtext {
  display: block;
  margin-top: 0.22rem;
  color: #64748b;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.2;
}

.event-info-box .text-bg-primary {
  background: #dbeafe !important;
  color: #1d4ed8 !important;
}

.event-info-box .text-bg-info {
  background: #cffafe !important;
  color: #0e7490 !important;
}

.event-info-box .text-bg-danger {
  background: #ffe4e6 !important;
  color: #be123c !important;
}

.event-info-box .text-bg-warning {
  background: #fef3c7 !important;
  color: #92400e !important;
}

.event-info-box .text-bg-success {
  background: #dcfce7 !important;
  color: #15803d !important;
}

.event-info-box .text-bg-purple {
  background: #ede9fe !important;
  color: #6d28d9 !important;
}

.event-info-box .text-bg-dark {
  background: #e2e8f0 !important;
  color: #334155 !important;
}

@media (max-width: 575.98px) {
  .event-info-box {
    min-height: 76px;
  }

  .event-info-box .info-box-icon {
    width: 64px;
    min-width: 64px;
  }

  .event-info-box .info-box-icon svg {
    width: 1.65rem;
    height: 1.65rem;
  }
}



/* AdminLTE v4 info boxes for event summary. */
.summary-info-box-grid {
  align-items: stretch;
}

.summary-info-box {
  position: relative;
  display: flex;
  width: 100%;
  min-height: 80px;
  height: 100%;
  padding: 0.5rem;
  margin-bottom: 0;
  overflow: hidden;
  color: #212529;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 0.375rem;
  background-color: #fff;
  box-shadow: 0 0 1px rgba(33, 37, 41, 0.125), 0 1px 3px rgba(33, 37, 41, 0.16);
}

.summary-info-box .info-box-icon {
  display: flex;
  width: 70px;
  min-width: 70px;
  align-items: center;
  justify-content: center;
  border-radius: 0.375rem;
  text-align: center;
  color: currentColor;
}

.summary-info-box .info-box-icon svg {
  width: 1.875rem;
  height: 1.875rem;
  display: block;
  fill: currentColor;
}

.summary-info-box .info-box-content {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: center;
  padding: 0 10px;
  line-height: 1.8;
}

.summary-info-box .info-box-text {
  display: block;
  overflow: hidden;
  color: #0f172a;
  font-size: 0.98rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.summary-info-box .info-box-number {
  display: block;
  margin-top: 0.25rem;
  color: #0f172a;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.summary-info-box .info-box-number small {
  font-size: 0.875em;
  font-weight: 700;
}

.summary-info-box .text-bg-primary {
  background: #dbeafe !important;
  color: #1d4ed8 !important;
}

.summary-info-box .text-bg-danger {
  background: #ffe4e6 !important;
  color: #be123c !important;
}

.summary-info-box .text-bg-success {
  background: #dcfce7 !important;
  color: #15803d !important;
}

.summary-info-box .text-bg-warning {
  background: #fef3c7 !important;
  color: #92400e !important;
}

@media (max-width: 575.98px) {
  .summary-info-box {
    min-height: 76px;
  }

  .summary-info-box .info-box-icon {
    width: 64px;
    min-width: 64px;
  }

  .summary-info-box .info-box-icon svg {
    width: 1.65rem;
    height: 1.65rem;
  }
}



.staff-hours-pill {
  display: inline-flex;
  align-items: center;
  min-height: 1.7rem;
  padding: 0.18rem 0.55rem;
  border-radius: 999px;
  background: #eef2ff;
  color: #3730a3;
  font-size: 0.82rem;
  font-weight: 700;
  white-space: nowrap;
}

.staff-hours-source {
  display: inline-flex;
  margin-left: 0.35rem;
  padding: 0.08rem 0.35rem;
  border-radius: 999px;
  background: #ecfdf5;
  color: #047857;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  vertical-align: middle;
}



.event-overview-grid > div {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
}

.event-overview-grid span {
  color: #64748b;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.event-overview-grid strong {
  color: #0f172a;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.event-briefing-panel {
  border: 1px solid rgba(99, 102, 241, 0.18);
  border-radius: 0.5rem;
  background: #f8f9ff;
  padding: 1rem;
}

.event-briefing-panel__title {
  color: #3730a3;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin-bottom: 0.55rem;
  text-transform: uppercase;
}

.event-comments-form.is-dirty textarea {
  border-color: #f59e0b;
  box-shadow: 0 0 0 0.2rem rgba(245, 158, 11, 0.12);
}



/* Sidebar typography follows the CoreUI system stack and normal menu weight. */
.sidebar,
.sidebar-brand,
.sidebar .sidebar-nav,
.sidebar .nav-title,
.sidebar .nav-link,
.sidebar .app-sidebar-label,
.app-brand-copy,
.app-brand-name {
  font-family: var(--font-main);
}



.app-profile-avatar img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: inherit;
}



/* Staff profile photos and shared address suggestions. */
.staff-avatar {
  object-fit: cover;
  border-radius: 0.7rem !important;
}


/* Sidebar readability pass: 1.5x menu text on desktop, tablet and mobile. */
.sidebar .nav-link {
  min-height: 52px;
  font-size: 1.14rem;
  line-height: 1.25;
}

.sidebar .nav-title {
  font-size: 0.93rem;
  line-height: 1.2;
}

.sidebar .app-sidebar-label {
  font-size: inherit;
}

@media (max-width: 991.98px) {
  .sidebar .nav-link {
    min-height: 52px;
    font-size: 1.14rem;
    line-height: 1.25;
  }

  .sidebar .nav-title {
    font-size: 0.93rem;
  }
}

.staff-photo-field {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
}

.staff-photo-preview {
  width: 82px;
  height: 82px;
  border-radius: 1rem;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #64748b;
  font-weight: 700;
  background: linear-gradient(135deg, #eef2ff, #f8fafc);
  border: 1px solid #dbe3ef;
}

.staff-photo-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.staff-photo-actions {
  min-width: 0;
}

.list-group[data-address-autocomplete-results] {
  max-height: min(22rem, 52vh);
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  border: 1px solid #dbe3ef;
  border-radius: 12px;
  box-shadow: 0 1rem 2.25rem rgba(15, 23, 42, 0.14);
  background: #fff;
  scroll-padding: 0.5rem;
}

.address-suggestion-item {
  display: grid;
  gap: 0.2rem;
  min-height: 3.7rem;
  align-content: center;
  padding: 0.8rem 0.95rem;
  text-align: left;
  white-space: normal;
  touch-action: pan-y;
}

.address-suggestion-loading {
  min-height: 3.1rem;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  color: #92400e;
  background: #fffbeb;
  font-weight: 700;
}

.address-suggestion-loading__dot {
  width: 0.72rem;
  height: 0.72rem;
  border-radius: 999px;
  background: #f59e0b;
  box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.45);
  animation: address-loading-pulse 1.1s ease-out infinite;
}

@keyframes address-loading-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.42);
  }
  100% {
    box-shadow: 0 0 0 0.62rem rgba(245, 158, 11, 0);
  }
}

.address-suggestion-item.is-active,
.address-suggestion-item:focus-visible {
  background: #fff7ed;
  border-color: #fed7aa;
  color: #111827;
  outline: 0;
}

.address-suggestion-item small,
.pp-address-autocomplete-help {
  color: #64748b;
  font-size: 0.82rem;
}

.pp-address-autocomplete-help {
  margin-top: 0.35rem;
}

@media (max-width: 575.98px) {
  .staff-photo-field {
    grid-template-columns: 1fr;
  }
}


/* Event staff assignment identity. */
.event-staff-person,
.event-staff-dialog-person {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  min-width: 0;
}

.event-staff-avatar {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
}

.event-staff-dialog-avatar {
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
}

.event-staff-person > span,
.event-staff-dialog-person > div {
  min-width: 0;
}


/* Uniform control. */
.uniform-summary-card {
  min-height: 86px;
  padding: 1rem 1.1rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.55rem;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
  display: grid;
  gap: 0.35rem;
}

.uniform-summary-card span {
  color: #64748b;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.78rem;
}

.uniform-summary-card strong {
  color: #0f172a;
  font-size: 1.6rem;
  line-height: 1;
}

.proposal-package-table-stack {
  display: grid;
  gap: 1rem;
}

.app-preline {
  white-space: pre-line;
}

.client-request-public-page {
  min-height: 100vh;
  background: #f6efe4;
  color: #1f2937;
  font-family: var(--font-main);
}

.client-request-public-shell {
  width: min(1180px, calc(100% - 2rem));
  margin: 0 auto;
  padding: 2rem 0 3rem;
}

.client-request-public-header {
  margin-bottom: 1.5rem;
}

.client-request-public-header h1 {
  margin: 0.8rem 0 0.35rem;
  color: #151827;
  font-size: clamp(2rem, 5vw, 3.4rem);
  font-weight: 700;
  line-height: 1.04;
}

.client-request-public-header p {
  max-width: 48rem;
  color: #5f6470;
  font-size: 1.05rem;
}

.client-request-public-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 1.2rem;
  align-items: start;
}

.client-request-public-card,
.client-request-public-item {
  border: 1px solid rgba(31, 41, 55, 0.1);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 45px rgba(31, 41, 55, 0.08);
}

.client-request-public-card {
  padding: 1.25rem;
}

.client-request-public-card h2 {
  margin-bottom: 1rem;
  color: #151827;
  font-size: 1.25rem;
  font-weight: 700;
}

.client-request-public-list {
  display: grid;
  gap: 0.9rem;
}

.client-request-public-item {
  padding: 1rem;
}

.client-request-public-item h3 {
  margin: 0;
  color: #151827;
  font-size: 1.02rem;
  font-weight: 700;
}

.client-request-public-item p {
  margin: 0.85rem 0 0;
  color: #4b5563;
}

.client-request-public-checklist {
  display: grid;
  gap: 0.55rem;
  margin-top: 0.9rem;
}

.client-request-public-check {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  color: #374151;
}

.client-request-public-check__box {
  width: 1rem;
  height: 1rem;
  flex: 0 0 auto;
  border: 2px solid #d1d5db;
  border-radius: 4px;
  background: #fff;
}

.client-request-public-check__box.is-done {
  border-color: #16a34a;
  background: #16a34a;
  box-shadow: inset 0 0 0 3px #fff;
}

.client-request-public-notes {
  display: grid;
  gap: 0.5rem;
  margin-top: 0.9rem;
}

.client-request-public-note {
  padding: 0.75rem;
  border-left: 3px solid #111827;
  background: #f8fafc;
  color: #374151;
  white-space: pre-line;
}

.client-request-attachment-hint {
  margin-top: 0.45rem;
  color: #64748b;
  font-size: 0.86rem;
  line-height: 1.45;
}

.client-request-public-attachments {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.85rem;
  padding: 0.42rem 0.7rem;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  background: #f8fafc;
  color: #475569;
  font-size: 0.86rem;
}

.client-request-public-attachments strong {
  color: #111827;
}

.client-request-admin-attachment {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.8rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  color: #1f2937;
  text-decoration: none;
  transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.client-request-admin-attachment:hover {
  border-color: #a7b2c3;
  color: #111827;
  box-shadow: 0 12px 24px rgba(31, 41, 55, 0.08);
  transform: translateY(-1px);
}

.client-request-admin-attachment__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.45rem;
  height: 2.45rem;
  flex: 0 0 2.45rem;
  border-radius: 8px;
  background: #edf5ff;
  color: #2563eb;
}

.client-request-admin-attachment__icon svg {
  width: 1.2rem;
  height: 1.2rem;
}

.client-request-admin-attachment strong,
.client-request-admin-attachment small {
  display: block;
}

.client-request-admin-attachment small {
  margin-top: 0.18rem;
  color: #64748b;
}

.client-request-voice {
  display: grid;
  gap: 0.85rem;
  padding: 1rem;
  border: 1px solid rgba(31, 41, 55, 0.1);
  border-radius: 8px;
  background: #fbfcff;
}

.client-request-voice__head,
.client-request-voice__toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.client-request-voice__head p {
  margin: 0;
  color: #64748b;
  font-size: 0.9rem;
  line-height: 1.45;
}

.client-request-voice__add,
.client-request-voice__remove,
.client-request-voice__stop {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  font-family: var(--font-sneat-buttons, var(--font-main));
  font-weight: 700;
  line-height: 1;
}

.client-request-voice__add {
  width: 2.55rem;
  height: 2.55rem;
  flex: 0 0 2.55rem;
  border-radius: 999px;
  background: #111827;
  color: #fff;
  font-size: 1.55rem;
  box-shadow: 0 12px 24px rgba(17, 24, 39, 0.16);
}

.client-request-voice__add:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.client-request-voice__body {
  display: grid;
  gap: 0.75rem;
}

.client-request-voice__status {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  background: #eef2ff;
  color: #4338ca;
  font-size: 0.84rem;
  font-weight: 700;
}

.client-request-voice[data-voice-state="recording"] .client-request-voice__status {
  background: #fff1f2;
  color: #be123c;
}

.client-request-voice[data-voice-state="ready"] .client-request-voice__status {
  background: #ecfdf5;
  color: #047857;
}

.client-request-voice[data-voice-state="transcribing"] .client-request-voice__status {
  background: #eff6ff;
  color: #1d4ed8;
}

.client-request-voice[data-voice-state="error"] .client-request-voice__status {
  background: #fef2f2;
  color: #b91c1c;
}

.client-request-voice__actions {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.client-request-voice__stop {
  min-height: 2rem;
  padding: 0 0.8rem;
  border-radius: 999px;
  background: #f43f5e;
  color: #fff;
  font-size: 0.82rem;
}

.client-request-voice__remove {
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: #f3f4f6;
  color: #4b5563;
  font-size: 1.25rem;
}

.client-request-voice__remove:hover {
  background: #fee2e2;
  color: #b91c1c;
}

.client-request-voice__audio {
  width: 100%;
  min-height: 2.4rem;
}

.client-request-voice__hint {
  color: #64748b;
  font-size: 0.86rem;
  line-height: 1.45;
}

@media (max-width: 991.98px) {
  .client-request-public-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .client-request-voice__head,
  .client-request-voice__toolbar {
    align-items: stretch;
  }

  .client-request-voice__toolbar {
    flex-direction: column;
  }

  .client-request-voice__actions {
    justify-content: space-between;
  }
}

.proposal-package-table-section .card-header {
  font-weight: 700;
}

.proposal-package-row {
  cursor: pointer;
}

.proposal-package-row:focus-visible {
  outline: 3px solid rgba(99, 102, 241, 0.25);
  outline-offset: -3px;
}

.proposal-package-modal-form {
  width: min(980px, calc(100vw - 1.25rem));
}

.proposal-package-drawer {
  position: fixed;
  inset: 0 0 0 auto;
  width: min(42rem, 100vw);
  max-width: 100vw;
  height: 100dvh;
  max-height: 100dvh;
  margin: 0 0 0 auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: hidden;
  animation: proposal-package-drawer-in 220ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

body.proposal-package-drawer-open {
  overflow: hidden;
}

.proposal-package-drawer.is-closing {
  animation: proposal-package-drawer-out 200ms cubic-bezier(0.4, 0, 0.2, 1) both;
}

.proposal-package-drawer::backdrop {
  background: rgba(15, 23, 42, 0.42);
  backdrop-filter: blur(3px);
  animation: proposal-package-backdrop-in 180ms ease both;
}

.proposal-package-drawer.is-closing::backdrop {
  animation: proposal-package-backdrop-out 200ms ease both;
}

.proposal-package-drawer .proposal-package-modal-form {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  max-height: 100dvh;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 1rem 0 0 1rem;
  overflow: hidden;
}

.proposal-package-drawer .app-dialog-header {
  flex: 0 0 auto;
  margin: 0;
  padding: 1.15rem 1.25rem;
  border-bottom: 1px solid #e5e7eb;
}

.proposal-package-drawer-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 1.15rem 1.25rem;
  overscroll-behavior: contain;
}

.proposal-package-drawer .app-dialog-actions {
  flex: 0 0 auto;
  margin: 0;
  padding: 1rem 1.25rem;
  border-top: 1px solid #e5e7eb;
  background: #fff;
  box-shadow: 0 -0.65rem 1.2rem rgba(15, 23, 42, 0.06);
}

@keyframes proposal-package-drawer-in {
  from {
    opacity: 0.82;
    transform: translateX(100%);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes proposal-package-drawer-out {
  from {
    opacity: 1;
    transform: translateX(0);
  }
  to {
    opacity: 0.82;
    transform: translateX(100%);
  }
}

@keyframes proposal-package-backdrop-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes proposal-package-backdrop-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

.sneat-section-title {
  color: #384551;
  font-size: 1.375rem;
  font-weight: 500;
  line-height: 1.2;
}

.sneat-section-copy {
  color: #697a8d;
  font-size: 0.9375rem;
  line-height: 1.45;
}

.sneat-role-card,
.sneat-users-card {
  border: 0;
  border-radius: 0.5rem;
  background: #fff;
  box-shadow: 0 0.125rem 0.375rem rgba(67, 89, 113, 0.12);
}

.sneat-role-card .card-body {
  padding: 1.5rem;
}

.sneat-role-card__total {
  color: #697a8d;
  font-size: 0.9375rem;
  font-weight: 400;
}

.sneat-role-card__avatars {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  min-width: 5.25rem;
}

.sneat-role-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  margin-left: -0.5rem;
  border: 2px solid #fff;
  border-radius: 50%;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1;
}

.sneat-role-avatar:first-child {
  margin-left: 0;
}

.sneat-role-avatar--primary { background: #0f9f8f; }
.sneat-role-avatar--info { background: #03c3ec; }
.sneat-role-avatar--success { background: #71dd37; }
.sneat-role-avatar--warning { background: #ffab00; }
.sneat-role-avatar--more {
  background: #f0f2f4;
  color: #566a7f;
}

.sneat-role-card__title {
  color: #384551;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.2;
}

.sneat-role-card__edit {
  color: #0f9f8f;
  font-size: 0.9375rem;
  font-weight: 400;
  text-decoration: none;
}

.sneat-role-card__edit:hover,
.sneat-role-card__edit:focus-visible {
  color: #0b8579;
  text-decoration: none;
}

.sneat-role-card__copy {
  color: #697a8d;
  font-size: 0.875rem;
  line-height: 1.45;
}

.sneat-role-card__glyph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.375rem;
}

.sneat-role-card__glyph svg {
  width: 1.45rem;
  height: 1.45rem;
  fill: currentColor;
}

.sneat-role-card__glyph--primary {
  background: #e7e7ff;
  color: #0f9f8f;
}

.sneat-role-card__glyph--info {
  background: #d7f5fc;
  color: #03c3ec;
}

.sneat-role-card__glyph--success {
  background: #e8fadf;
  color: #71dd37;
}

.sneat-role-card__glyph--warning {
  background: #fff2d6;
  color: #ffab00;
}

.sneat-role-card--add {
  overflow: hidden;
}

.sneat-role-card__add-btn {
  border-color: #0f9f8f;
  background: #0f9f8f;
  box-shadow: 0 0.125rem 0.25rem rgba(105, 108, 255, 0.28);
  font-size: 0.9375rem;
  font-weight: 500;
}

.sneat-role-card__illustration {
  flex: 0 0 8.5rem;
  color: #0f9f8f;
  opacity: 0.9;
}

.sneat-role-card__illustration svg {
  width: 8.5rem;
  height: auto;
}

.sneat-role-card__illustration rect {
  fill: #f2f2ff;
  stroke: #cfcfff;
}

.sneat-role-card__illustration path,
.sneat-role-card__illustration circle {
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 7;
}

.sneat-users-card .card-header {
  padding: 1.5rem;
  background: #fff;
}

.sneat-users-card .card-title {
  color: #384551;
  font-size: 1.125rem;
  font-weight: 500;
}

.sneat-users-table {
  color: #566a7f;
}

.sneat-users-table thead th {
  border-bottom: 1px solid #e5e7eb;
  background: #f5f5f9;
  color: #566a7f;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.2;
  padding: 0.85rem 1.25rem;
  text-transform: uppercase;
  white-space: nowrap;
}

.sneat-users-table tbody td {
  border-color: #eceef1;
  padding: 0.95rem 1.25rem;
  vertical-align: middle;
}

.sneat-user-cell {
  display: inline-flex;
  align-items: center;
  gap: 0.875rem;
  color: inherit;
  text-decoration: none;
}

.sneat-user-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.375rem;
  height: 2.375rem;
  border-radius: 50%;
  background: #e7e7ff;
  color: #0f9f8f;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1;
}

.sneat-user-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.sneat-user-name {
  color: #384551;
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1.25;
}

.sneat-user-email {
  color: #a1acb8;
  font-size: 0.8125rem;
  line-height: 1.25;
}

.sneat-role-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: #566a7f;
  font-size: 0.9375rem;
  font-weight: 400;
}

.sneat-role-pill svg {
  width: 1.125rem;
  height: 1.125rem;
  fill: currentColor;
}

.sneat-role-pill--admin { color: #0f9f8f; }
.sneat-role-pill--desarrollo { color: #03c3ec; }
.sneat-role-pill--sala { color: #71dd37; }
.sneat-role-pill--cocina { color: #ffab00; }

.sneat-table-text {
  color: #566a7f;
  font-size: 0.9375rem;
}

.sneat-status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 4rem;
  padding: 0.35rem 0.65rem;
  border-radius: 0.375rem;
  background: #e8fadf;
  color: #71dd37;
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1;
}

.sneat-user-action {
  color: #697a8d;
}

.sneat-user-action svg {
  width: 1.125rem;
  height: 1.125rem;
}

.sneat-role-card__new-form {
  flex: 1 1 auto;
  min-width: 0;
}

.role-permissions-layout {
  display: grid;
  grid-template-columns: minmax(15rem, 18rem) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}

.app-adminlte-card,
.role-permission-group {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--app-adminlte-card-border) !important;
  border-radius: var(--app-adminlte-card-radius) !important;
  box-shadow: var(--app-adminlte-card-shadow) !important;
}

.role-permissions-summary {
  position: sticky;
  top: 5rem;
}

.role-permissions-summary__label {
  color: #697a8d;
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
}

.role-permissions-summary__count {
  color: #384551;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.1;
}

.role-permissions-user-stack {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.85rem;
}

.role-permissions-user-stack span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: #e7e7ff;
  color: #0f9f8f;
  font-size: 0.76rem;
  font-weight: 700;
}

.role-permissions-tree {
  display: grid;
  gap: 0.8rem;
}

.role-permission-group summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.85rem;
  align-items: center;
  padding: 1rem 1.1rem;
  cursor: pointer;
  list-style: none;
  background: var(--app-adminlte-card-header-bg);
  border-bottom: 1px solid transparent;
}

.role-permission-group[open] summary {
  border-bottom-color: var(--app-adminlte-card-border);
}

.role-permission-group summary::-webkit-details-marker {
  display: none;
}

.role-permission-group summary strong {
  display: block;
  color: #384551;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
}

.role-permission-group summary small {
  display: block;
  color: #697a8d;
  font-size: 0.86rem;
  line-height: 1.35;
  margin-top: 0.2rem;
}

.role-permission-group summary em {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 3.25rem;
  padding: 0.35rem 0.55rem;
  border-radius: 999px;
  background: #ecf3ff;
  color: #0f9f8f;
  font-size: 0.78rem;
  font-style: normal;
  font-weight: 700;
}

.role-permission-group__plus {
  position: relative;
  display: inline-flex;
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 0.4rem;
  background: #f2f4f7;
  color: #344054;
}

.role-permission-group__plus::before,
.role-permission-group__plus::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 0.75rem;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transform: translate(-50%, -50%);
}

.role-permission-group__plus::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.role-permission-group[open] .role-permission-group__plus::after {
  opacity: 0;
}

.role-permission-group__body {
  display: grid;
  gap: 0.75rem;
  padding: 1rem;
}

.role-permission-module {
  border: 1px solid #eceef1;
  border-radius: 0.45rem;
  background: #fff;
}

.role-permission-module__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 0.95rem;
  border-bottom: 1px solid #eceef1;
  background: #fbfbfc;
}

.role-permission-module__header h3 {
  margin: 0;
  color: #384551;
  font-size: 0.98rem;
  font-weight: 700;
}

.role-permission-module__header span {
  color: #697a8d;
  font-size: 0.8rem;
}

.role-permission-checks {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  padding: 0.85rem;
}

.role-permission-check {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.65rem;
  align-items: start;
  min-height: 4.3rem;
  padding: 0.75rem;
  border: 1px solid #eceef1;
  border-radius: 0.45rem;
  background: #fff;
}

.role-permission-check input {
  width: 1rem;
  height: 1rem;
  margin-top: 0.15rem;
  accent-color: #0f9f8f;
}

.role-permission-check strong {
  display: block;
  color: #384551;
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.25;
}

.role-permission-check small {
  display: block;
  color: #697a8d;
  font-size: 0.8rem;
  line-height: 1.35;
  margin-top: 0.2rem;
}

.role-permissions-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.65rem;
  padding: 1rem 0 0.25rem;
}

.pizza-standard-recipe {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.pizza-standard-recipe span {
  display: inline-flex;
  align-items: center;
  min-height: 1.85rem;
  padding: 0.35rem 0.65rem;
  border: 1px solid #d9e2ff;
  border-radius: 999px;
  background: #ecf3ff;
  color: #0f9f8f;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1;
}

.app-sneat-pill-btn {
  display: inline-flex;
  min-height: 2.35rem;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.55rem 1.15rem;
  border: 1px solid transparent;
  border-radius: 50rem;
  background: #0f9f8f;
  color: #fff;
  box-shadow: 0 0.125rem 0.25rem rgba(15, 159, 143, 0.32);
  font-family: var(--font-sneat-buttons);
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.1;
  text-decoration: none;
  transition: background-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
  white-space: nowrap;
}

.app-sneat-pill-btn:hover,
.app-sneat-pill-btn:focus-visible {
  background: #0b8579;
  color: #fff;
  box-shadow: 0 0.25rem 0.7rem rgba(15, 159, 143, 0.28);
  text-decoration: none;
  transform: translateY(-1px);
}

.app-sneat-pill-btn:active {
  background: #096f66;
  box-shadow: 0 0.125rem 0.25rem rgba(15, 159, 143, 0.22);
  transform: translateY(0);
}

.app-sneat-pill-btn--sm {
  min-height: 1.95rem;
  padding: 0.4rem 0.8rem;
  font-size: 0.8rem;
}

.app-sneat-pill-btn--wide {
  width: 100%;
}

@media (max-width: 575.98px) {
  .sneat-role-card .card-body,
  .sneat-users-card .card-header {
    padding: 1.15rem;
  }

  .sneat-role-card__illustration {
    display: none;
  }
}

@media (max-width: 991.98px) {
  .role-permissions-layout {
    grid-template-columns: 1fr;
  }

  .role-permissions-summary {
    position: static;
  }

  .role-permission-checks {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 992px) {
  body.user-management-drawer-open {
    overflow: hidden;
  }

  .user-management-drawer-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1075;
    background: rgba(15, 23, 42, 0.42);
    backdrop-filter: blur(3px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 180ms ease;
  }

  .user-management-drawer-shell.is-open .user-management-drawer-backdrop {
    opacity: 1;
    pointer-events: auto;
  }

  .user-management-drawer {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 1080;
    display: flex;
    flex-direction: column;
    width: min(34rem, 100vw);
    height: 100dvh;
    max-height: 100dvh;
    margin: 0;
    border: 0;
    border-radius: 1rem 0 0 1rem;
    box-shadow: -1.25rem 0 2.8rem rgba(15, 23, 42, 0.18);
    transform: translateX(100%);
    transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
  }

  .user-management-drawer-shell.is-open .user-management-drawer {
    transform: translateX(0);
  }

  .user-management-drawer .card-header {
    flex: 0 0 auto;
    padding: 1.15rem 1.25rem;
    border-bottom: 1px solid #e5e7eb;
    background: #fff;
  }

  .user-management-drawer .card-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 1.15rem 1.25rem;
    overscroll-behavior: contain;
  }
}

@media (max-width: 991.98px) {
  .user-management-drawer-backdrop {
    display: none;
  }
}

.pp-link-expiry {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
  margin-top: 0.85rem;
  padding: 0.7rem 0.85rem;
  border: 1px solid rgba(245, 158, 11, 0.35);
  border-radius: 0.75rem;
  background: rgba(255, 251, 235, 0.92);
  color: #78350f;
  font-size: 0.9rem;
}

.pp-link-expiry span {
  color: #92400e;
  font-weight: 700;
}

@media (max-width: 767.98px) {
  .proposal-package-drawer {
    width: 100vw;
  }

  .proposal-package-drawer .proposal-package-modal-form {
    border-radius: 0;
  }

  .proposal-package-drawer .app-dialog-header,
  .proposal-package-drawer-body,
  .proposal-package-drawer .app-dialog-actions {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .proposal-package-drawer .app-dialog-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .proposal-package-drawer .app-dialog-actions .btn {
    width: 100%;
    min-height: 2.75rem;
  }

  .proposal-package-table,
  .proposal-package-table thead,
  .proposal-package-table tbody,
  .proposal-package-table tr,
  .proposal-package-table th,
  .proposal-package-table td {
    display: block;
    width: 100%;
  }

  .proposal-package-table thead {
    display: none;
  }

  .proposal-package-table tbody {
    display: grid;
    gap: 0.75rem;
    padding: 0.75rem;
  }

  .proposal-package-table tr {
    border: 1px solid #e5e7eb;
    border-radius: 0.65rem;
    background: #fff;
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.05);
    padding: 0.3rem 0;
  }

  .proposal-package-table td {
    border: 0;
    padding: 0.65rem 0.85rem;
  }

  .proposal-package-table td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 0.2rem;
    color: #64748b;
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
  }

  .uniforms-responsive-table,
  .uniforms-responsive-table thead,
  .uniforms-responsive-table tbody,
  .uniforms-responsive-table tr,
  .uniforms-responsive-table th,
  .uniforms-responsive-table td {
    display: block;
    width: 100%;
  }

  .uniforms-responsive-table thead {
    display: none;
  }

  .uniforms-responsive-table tbody {
    display: grid;
    gap: 0.85rem;
  }

  .uniforms-responsive-table tr {
    border: 1px solid #e5e7eb;
    border-radius: 0.65rem;
    background: #fff;
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.05);
    padding: 0.35rem 0;
  }

  .uniforms-responsive-table td {
    border: 0;
    padding: 0.65rem 0.85rem;
  }

  .uniforms-responsive-table td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 0.2rem;
    color: #64748b;
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
  }

  .uniforms-responsive-table .app-row-action > div {
    justify-content: flex-start !important;
  }

  .uniforms-responsive-table .btn {
    min-height: 42px;
  }
}


/* Uniforms inside event staff profile. */
.event-staff-uniform-panel {
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  background: #f8fafc;
  padding: 1rem;
}

.event-staff-uniform-panel__header,
.event-staff-uniform-item,
.event-staff-uniform-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.event-staff-uniform-panel__header {
  justify-content: space-between;
  margin-bottom: 0.9rem;
}

.event-staff-uniform-list {
  display: grid;
  gap: 0.65rem;
  margin-bottom: 0.9rem;
}

.event-staff-uniform-item {
  justify-content: space-between;
  padding: 0.8rem;
  border-radius: 0.65rem;
  background: #fff;
  border: 1px solid #e2e8f0;
}

.event-staff-uniform-actions {
  justify-content: flex-end;
}


/* Post-event closing panel. */
.postevent-card {
  border-radius: 0.65rem;
}

.postevent-metric,
.postevent-panel {
  border: 1px solid #e5e7eb;
  border-radius: 0.65rem;
  background: #fff;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.05);
}

.postevent-metric {
  padding: 0.95rem 1rem;
  display: grid;
  gap: 0.35rem;
}

.postevent-metric span {
  color: #64748b;
  font-size: 0.78rem;
  text-transform: uppercase;
  font-weight: 700;
}

.postevent-metric strong {
  color: #0f172a;
  font-size: 1.55rem;
  line-height: 1;
}

.postevent-metric.is-warning {
  border-color: #fde68a;
  background: #fffbeb;
}

.postevent-metric.is-danger {
  border-color: #fecaca;
  background: #fff1f2;
}

.postevent-panel {
  padding: 1rem;
}

.postevent-panel__header,
.postevent-uniform-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.postevent-panel__header {
  margin-bottom: 0.85rem;
}

.postevent-task-list {
  margin: 0;
  padding-left: 1.1rem;
  color: #334155;
}

.postevent-task-list li + li {
  margin-top: 0.35rem;
}

.postevent-uniform-list {
  display: grid;
  gap: 0.55rem;
}

.postevent-uniform-row {
  padding: 0.75rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.55rem;
  background: #f8fafc;
}

/* Generic readable table rhythm. */
.app-table-responsive .table,
.app-volt-table {
  border-collapse: separate;
  border-spacing: 0;
}

.app-table-responsive .table thead th,
.app-volt-table thead th {
  background: #f8fafc;
  border-bottom: 1px solid #d8dee8;
  color: #475569;
}

.app-table-responsive .table tbody td,
.app-volt-table tbody td {
  border-bottom: 1px solid #e6ebf2;
}

.app-table-responsive .table tbody tr:nth-child(even),
.app-volt-table tbody tr:nth-child(even) {
  background: #fbfdff;
}

.app-table-responsive .table tbody tr:hover,
.app-volt-table tbody tr:hover {
  background: #f5f8fc;
}

.app-page-shell .app-volt-table-card,
.app-page-shell .app-table-responsive {
  border: 1px solid #e6ebf1 !important;
  border-radius: 4px;
  box-shadow: none !important;
}

.app-page-shell .app-volt-table-card {
  padding: 0;
}

.app-page-shell .app-volt-table,
.app-page-shell .app-table-responsive > .table {
  margin-bottom: 0;
  color: #262626;
  border-collapse: separate;
  border-spacing: 0;
}

.app-page-shell .app-volt-table > :not(caption) > * > *,
.app-page-shell .app-table-responsive > .table > :not(caption) > * > * {
  padding: 12px;
  border-color: #f0f0f0;
  font-size: 0.875rem;
  vertical-align: middle;
}

.app-page-shell .app-volt-table thead,
.app-page-shell .app-table-responsive > .table thead {
  background: #fafafa;
  border-top: 1px solid #f0f0f0;
  border-bottom: 2px solid #f0f0f0;
}

.app-page-shell .app-volt-table thead th,
.app-page-shell .app-table-responsive > .table thead th {
  color: #262626;
  background: #fafafa;
  border-bottom: 0 !important;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
  white-space: nowrap;
}

.app-page-shell .app-volt-table th:first-child,
.app-page-shell .app-volt-table td:first-child,
.app-page-shell .app-table-responsive > .table th:first-child,
.app-page-shell .app-table-responsive > .table td:first-child {
  padding-left: 24px;
}

.app-page-shell .app-volt-table th:last-child,
.app-page-shell .app-volt-table td:last-child,
.app-page-shell .app-table-responsive > .table th:last-child,
.app-page-shell .app-table-responsive > .table td:last-child {
  padding-right: 24px;
}

.app-page-shell .app-volt-table tbody tr:nth-child(even),
.app-page-shell .app-table-responsive > .table tbody tr:nth-child(even) {
  background: #fff;
}

.app-page-shell .app-volt-table tbody tr:hover,
.app-page-shell .app-volt-table tbody tr:hover > *,
.app-page-shell .app-table-responsive > .table tbody tr:hover,
.app-page-shell .app-table-responsive > .table tbody tr:hover > * {
  background: rgba(0, 0, 0, 0.04);
}

.app-page-shell .app-volt-table tbody tr:last-child > *,
.app-page-shell .app-table-responsive > .table tbody tr:last-child > * {
  border-bottom: 0;
}

.app-page-shell .app-volt-table .avatar,
.app-page-shell .app-table-responsive > .table .avatar {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
}

.app-leads-mantis-card .app-mantis-table {
  border-collapse: separate;
  border-spacing: 0;
}

.app-leads-mantis-card .app-mantis-table thead th {
  background: #fafafa;
  border-bottom: 0 !important;
  color: #262626;
  font-size: 0.75rem;
  font-weight: 700;
}

.app-leads-mantis-card .app-mantis-table tbody td {
  border-bottom: 1px solid #f0f0f0;
  color: #262626;
}

.app-leads-mantis-card .app-mantis-table tbody tr:nth-child(even) {
  background: #fff;
}

.app-leads-mantis-card .app-mantis-table tbody tr:hover,
.app-leads-mantis-card .app-mantis-table tbody tr:hover > * {
  background: rgba(0, 0, 0, 0.04);
}

.postevent-task-list--forms {
  display: grid;
  gap: 0.55rem;
  padding-left: 0;
}

.postevent-check-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: center;
  padding: 0.65rem 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.45rem;
  background: #fff;
}

.postevent-issue-list {
  display: grid;
  gap: 0.65rem;
}

.postevent-issue-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: center;
  padding: 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.45rem;
  background: #fff;
}

.postevent-issue-capture {
  padding: 0.85rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  background: #f8fafc;
}

.postevent-issue-capture__hint {
  color: #64748b;
  font-size: 0.82rem;
  line-height: 1.35;
}

.deliverable-link-list {
  display: grid;
  gap: 0.15rem;
}

.deliverable-link-list a {
  display: flex;
  align-items: center;
  min-height: 2.45rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid #edf1f6;
  color: #1d4ed8;
  font-weight: 700;
  text-decoration: none;
}

.deliverable-link-list a:hover {
  color: #163caa;
  text-decoration: underline;
}

.deliverable-link-list a:last-child {
  border-bottom: 0;
}

@media (max-width: 575.98px) {
  .postevent-check-row,
  .postevent-issue-row {
    grid-template-columns: 1fr;
  }
}

.postevent-material-quick-grid,
.postevent-material-issue-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr));
  gap: 0.75rem;
}

.postevent-material-quick-grid {
  margin-bottom: 1rem;
}

.postevent-material-quick-form,
.postevent-material-card__form {
  margin: 0;
}

.postevent-material-card {
  display: flex;
  width: 100%;
  min-width: 0;
  border: 1px solid #e6e8ef;
  border-radius: 0.55rem;
  background: #ffffff;
  color: #24324a;
  font-family: "Public Sans", var(--font-main);
  text-align: left;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.postevent-material-card--quick {
  min-height: 5.25rem;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.postevent-material-card--quick:hover,
.postevent-material-card--quick:focus-visible {
  border-color: #f0b45b;
  box-shadow: 0 8px 20px rgba(146, 64, 14, 0.1);
  transform: translateY(-1px);
}

.postevent-material-card--issue {
  min-height: 10.25rem;
  flex-direction: column;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.85rem;
}

.postevent-material-card--warning {
  border-color: #fde3b0;
  background: linear-gradient(180deg, #fffdf8 0%, #ffffff 58%);
}

.postevent-material-card--danger {
  border-color: #ffd2ca;
  background: linear-gradient(180deg, #fff9f7 0%, #ffffff 58%);
}

.postevent-material-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
}

.postevent-material-card__icon {
  display: inline-flex;
  width: 2.35rem;
  height: 2.35rem;
  flex: 0 0 2.35rem;
  align-items: center;
  justify-content: center;
  border-radius: 0.55rem;
}

.postevent-material-card__icon svg {
  width: 1.2rem;
  height: 1.2rem;
}

.postevent-material-card__icon--box {
  background: #eef6ff;
  color: #2563eb;
}

.postevent-material-card__icon--warning {
  background: #fff3da;
  color: #b45309;
}

.postevent-material-card__icon--danger {
  background: #fff0ed;
  color: #d92d20;
}

.postevent-material-card__icon--success {
  background: #eafaf0;
  color: #16803a;
}

.postevent-material-card__content {
  display: grid;
  min-width: 0;
  gap: 0.2rem;
}

.postevent-material-card__content strong {
  color: #1f2937;
  font-size: 0.94rem;
  font-weight: 700;
  line-height: 1.25;
}

.postevent-material-card__content p {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: #6b7280;
  font-size: 0.8rem;
  line-height: 1.35;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.postevent-material-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.postevent-material-card__meta span {
  display: inline-flex;
  align-items: center;
  min-height: 1.35rem;
  padding: 0.18rem 0.42rem;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1;
}

.postevent-material-media-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.45rem;
}

.postevent-material-media {
  position: relative;
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
  border: 1px solid #e5e7eb;
  border-radius: 0.45rem;
  background: #f8fafc;
}

.postevent-material-media img,
.postevent-material-media video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.postevent-material-media__play {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 1.3rem;
  text-shadow: 0 1px 8px rgba(15, 23, 42, 0.55);
  background: rgba(15, 23, 42, 0.18);
}

.postevent-material-card__eyebrow {
  color: #7a8699;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.postevent-material-card__badge {
  min-width: 0;
  max-width: 9rem;
  padding: 0.26rem 0.48rem;
  border-radius: 999px;
  background: #f8fafc;
  color: #475569;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.postevent-material-resolve-btn {
  display: inline-flex;
  min-height: 2rem;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  width: 100%;
  padding: 0.35rem 0.7rem;
  border: 1px solid #b8e6c5;
  border-radius: 999px;
  background: #f1fbf4;
  color: #16743a;
  font-family: var(--font-sneat-buttons);
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.postevent-material-resolve-btn svg {
  width: 0.95rem;
  height: 0.95rem;
}

.postevent-material-resolve-btn:hover,
.postevent-material-resolve-btn:focus-visible {
  border-color: #82d89a;
  background: #e4f8ea;
  color: #0f5f2d;
}

.postevent-material-empty {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-height: 4.25rem;
  padding: 0.8rem;
  border: 1px dashed #cfe7d7;
  border-radius: 0.55rem;
  background: #fbfffc;
  color: #536271;
  font-size: 0.9rem;
  font-weight: 600;
}

@media (min-width: 992px) {
  .app-dialog--staff-assignment {
    width: min(42rem, 100vw);
  }

  .app-dialog--staff-assignment .app-dialog-card {
    padding: 0;
  }
}

.app-dialog--staff-assignment .app-dialog-card {
  overflow-y: auto;
  overscroll-behavior: contain;
}

.app-dialog--staff-assignment .app-dialog-header {
  align-items: center;
  min-height: 0;
  padding: 0.75rem 1rem;
}

.app-dialog--staff-assignment .btn-close {
  top: 0.75rem !important;
  right: 0.75rem !important;
}

.app-dialog--staff-assignment .event-staff-dialog-person {
  gap: 0.75rem;
  min-width: 0;
}

.app-dialog--staff-assignment .event-staff-dialog-avatar {
  width: 3.25rem;
  height: 3.25rem;
  flex: 0 0 3.25rem;
}

.app-dialog--staff-assignment .event-staff-dialog-person .fw-semibold {
  font-size: 1rem !important;
  line-height: 1.15;
}

.app-dialog--staff-assignment .event-staff-dialog-person .small {
  font-size: 0.78rem;
  line-height: 1.3;
}

.app-dialog--staff-assignment > .app-dialog-card > form {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.6rem 0.75rem;
  overflow: visible;
  padding: 0.8rem 1rem 0.7rem;
}

.app-dialog--staff-assignment > .app-dialog-card > form > [class*="col-"] {
  width: auto;
  max-width: none;
  flex: initial;
  padding-right: 0;
  padding-left: 0;
}

.event-staff-assignment-form__field--pay {
  grid-column: span 2;
}

.event-staff-assignment-form__field--full,
.event-staff-assignment-form__check,
.event-staff-assignment-form__actions {
  grid-column: 1 / -1;
}

.app-dialog--staff-assignment .form-label {
  margin-bottom: 0.2rem;
  font-size: 0.78rem;
  line-height: 1.25;
}

.app-dialog--staff-assignment .form-control,
.app-dialog--staff-assignment .form-select {
  min-height: 2.15rem;
  padding: 0.35rem 0.65rem;
  font-size: 0.82rem;
}

.app-dialog--staff-assignment textarea.form-control {
  min-height: 4rem;
}

.app-dialog--staff-assignment .form-text {
  margin-top: 0.2rem;
  font-size: 0.74rem;
  line-height: 1.25;
}

.app-dialog--staff-assignment .form-check {
  min-height: 0;
  margin-top: 0.1rem;
  margin-left: 0 !important;
  padding-left: 1.35rem;
}

.app-dialog--staff-assignment .form-check-label {
  font-size: 0.82rem;
  line-height: 1.25;
}

.app-dialog--staff-assignment > .app-dialog-card > form > .col-12.d-flex.justify-content-end {
  position: static;
  margin-top: 0;
  padding-top: 0.55rem;
  border-top: 1px solid #e5e7eb;
  background: #fff;
  box-shadow: none;
}

.app-dialog--staff-assignment .event-staff-uniform-panel {
  margin: 0 !important;
  padding: 0.75rem 1rem;
  border-top: 1px solid #edf1f6;
}

.app-dialog--staff-assignment .event-staff-uniform-panel__header {
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}

.app-dialog--staff-assignment .event-staff-uniform-panel__header .fw-semibold {
  font-size: 0.95rem;
  line-height: 1.2;
}

.app-dialog--staff-assignment .event-staff-uniform-panel__header .small,
.app-dialog--staff-assignment .event-staff-uniform-panel .text-body-secondary.small {
  font-size: 0.78rem;
  line-height: 1.3;
}

.app-dialog--staff-assignment .event-staff-uniform-panel .row {
  --bs-gutter-x: 0.6rem;
  --bs-gutter-y: 0.5rem;
}

.app-dialog--staff-assignment .event-staff-uniform-panel .btn {
  min-height: 2.15rem;
  padding: 0.35rem 0.65rem;
  font-size: 0.78rem;
}

.app-dialog--staff-assignment > .app-dialog-card > form:last-child {
  margin-top: 0 !important;
  padding: 0 1rem 0.85rem;
}

@media (max-width: 575.98px) {
  .app-dialog--staff-assignment > .app-dialog-card > form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .event-staff-assignment-form__field--pay {
    grid-column: 1 / -1;
  }
}

.app-dialog--staff-assignment > .app-dialog-card > form.event-staff-sneat-form {
  display: block;
  grid-template-columns: none;
  gap: 0;
  overflow: visible;
  padding: 0.85rem 1rem 0.75rem;
}

.event-staff-sneat-row {
  display: grid;
  grid-template-columns: 5.75rem minmax(0, 1fr);
  gap: 0.65rem;
  align-items: center;
  width: 100%;
  margin-bottom: 0.6rem;
}

.event-staff-sneat-row--top {
  align-items: start;
}

.event-staff-sneat-row--check,
.event-staff-sneat-row--actions {
  margin-bottom: 0.45rem;
}

.event-staff-sneat-row--actions {
  padding-top: 0.65rem;
  border-top: 1px solid #edf1f6;
}

.event-staff-sneat-row .col-form-label {
  padding: 0;
  color: #566a7f;
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.25;
}

.event-staff-sneat-control {
  width: 100%;
  min-width: 0;
}

.event-staff-sneat-control--grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}

.event-staff-sneat-input-group {
  display: flex;
  width: 100%;
  min-width: 0;
  border-radius: 0.375rem;
  box-shadow: 0 0.125rem 0.25rem 0 rgba(67, 89, 113, 0.08);
}

.event-staff-sneat-input-group .input-group-text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  min-height: 2.35rem;
  border-color: #d9dee3;
  border-right: 0;
  border-radius: 0.375rem 0 0 0.375rem;
  background: #fff;
  color: #697a8d;
}

.event-staff-sneat-input-group .input-group-text svg {
  width: 1rem;
  height: 1rem;
  fill: currentColor;
}

.event-staff-sneat-input-group .form-control {
  flex: 1 1 auto;
  width: 1%;
  min-width: 0;
  min-height: 2.35rem;
  border-color: #d9dee3;
  border-left: 0;
  border-radius: 0 0.375rem 0.375rem 0;
  color: #566a7f;
  font-size: 0.875rem;
  box-shadow: none;
}

.event-staff-sneat-input-group .form-control:focus {
  border-color: #0f9f8f;
  box-shadow: none;
}

.event-staff-sneat-input-group:focus-within .input-group-text {
  border-color: #0f9f8f;
  color: #0f9f8f;
}

.event-staff-sneat-input-group textarea.form-control {
  width: 1%;
  min-height: 4.25rem;
}

.event-staff-sneat-control .form-text {
  margin-top: 0.25rem;
  color: #697a8d;
  font-size: 0.75rem;
}

.event-staff-sneat-row--check .form-check {
  min-height: 0;
  margin: 0;
  padding-left: 1.45rem;
}

.event-staff-sneat-row--check .form-check-label {
  color: #566a7f;
  font-size: 0.8125rem;
  line-height: 1.3;
}

.event-staff-sneat-row--actions .btn {
  min-height: 2.35rem;
  border-radius: 0.375rem;
  padding: 0.45rem 0.9rem;
  font-size: 0.875rem;
  font-weight: 500;
}

.event-staff-sneat-row--actions .btn-primary {
  border-color: #0f9f8f;
  background: #0f9f8f;
  color: #fff;
  box-shadow: 0 0.125rem 0.25rem 0 rgba(15, 159, 143, 0.32);
}

.event-staff-sneat-row--actions .btn-primary:hover,
.event-staff-sneat-row--actions .btn-primary:focus-visible {
  border-color: #0b8579;
  background: #0b8579;
  color: #fff;
  transform: translateY(-1px);
}

.event-staff-sneat-row--actions .btn-outline-secondary {
  border-color: #8592a3;
  background: transparent;
  color: #8592a3;
}

.event-staff-sneat-row--actions .btn-outline-secondary:hover,
.event-staff-sneat-row--actions .btn-outline-secondary:focus-visible {
  border-color: #788393;
  background: #788393;
  color: #fff;
  box-shadow: 0 0.125rem 0.25rem 0 rgba(133, 146, 163, 0.4);
  transform: translateY(-1px);
}

@media (max-width: 575.98px) {
  .app-dialog--staff-assignment > .app-dialog-card > form.event-staff-sneat-form {
    display: block;
    grid-template-columns: none;
  }

  .event-staff-sneat-row {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }

  .event-staff-sneat-control--grid {
    grid-template-columns: 1fr;
  }
}

.dashboard-equipment-card {
  min-height: 100%;
}

.dashboard-section-heading__icon--danger {
  color: #dc2626;
  background: #fee2e2;
}

.dashboard-equipment-card__body {
  padding: 1rem;
}

.dashboard-equipment-list {
  display: grid;
  gap: 0.65rem;
}

.dashboard-equipment-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  width: 100%;
  padding: 0.75rem 0.85rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.55rem;
  background: #fff;
  color: #0f172a;
  text-align: left;
}

.dashboard-equipment-item:hover {
  border-color: #fecaca;
  background: #fff7f7;
}

.dashboard-equipment-item strong,
.dashboard-equipment-item small {
  display: block;
}

.dashboard-equipment-item small {
  margin-top: 0.15rem;
  color: #64748b;
  font-size: 0.78rem;
}

.dashboard-equipment-item em {
  flex: 0 0 auto;
  padding: 0.35em 0.65em;
  border-width: 1px;
  background: transparent;
  font-size: 0.6875rem;
  font-style: normal;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  white-space: nowrap;
}

.dashboard-equipment-status--pendiente_revision,
.dashboard-equipment-status--buscando_material,
.dashboard-equipment-status--compra_pendiente {
  border-color: #f7b84b;
  color: #f7b84b;
}

.dashboard-equipment-status--faltante_confirmado,
.dashboard-equipment-status--en_taller {
  border-color: #405189;
  color: #405189;
}

.dashboard-equipment-status--repuesto_pedido,
.dashboard-equipment-status--reparado,
.dashboard-equipment-status--resuelto {
  border-color: #0ab39c;
  color: #0ab39c;
}

@media (max-width: 575.98px) {
  .dashboard-equipment-item {
    align-items: flex-start;
  }

  .dashboard-equipment-item em {
    white-space: normal;
    text-align: right;
  }
}

@media (min-width: 992px) {
  .dashboard-equipment-dialog {
    width: min(620px, calc(100vw - 2rem));
  }
}

/* Reusable AdminLTE Browser Usage surface: border, radius and compact shadow only. */
.app-adminlte-card-surface,
.app-page-shell .card:not(.dashboard-kpi-card--adminlte),
.app-page-shell details.card,
.app-page-shell .table-wrapper,
.app-volt-table-card,
.app-mantis-table-card,
.dashboard-reference .dashboard-events-card,
.dashboard-reference .dashboard-stock-card,
.dashboard-reference .dashboard-logistics-card,
.dashboard-reference .dashboard-equipment-card,
.dashboard-reference .dashboard-reviews-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--app-adminlte-card-border) !important;
  border-radius: var(--app-adminlte-card-radius) !important;
  box-shadow: var(--app-adminlte-card-shadow) !important;
}

.app-page-shell .card > .card-header,
.app-page-shell details.card > summary.card-header,
.dashboard-reference .dashboard-events-card > .card-header,
.dashboard-reference .dashboard-section-heading {
  background: var(--app-adminlte-card-header-bg);
  border-bottom: 1px solid var(--app-adminlte-card-border) !important;
}

.app-page-shell .card > .card-footer,
.dashboard-reference .dashboard-card-footer {
  border-top: 1px solid var(--app-adminlte-card-border) !important;
}

.dashboard-reference .dashboard-kpi-card--adminlte {
  border: 1px solid var(--app-adminlte-card-border);
  box-shadow: var(--app-adminlte-card-shadow) !important;
}

.dashboard-reference .dashboard-kpi-card--adminlte:hover,
.dashboard-reference .dashboard-kpi-card--adminlte:focus-visible {
  box-shadow: var(--app-adminlte-card-shadow-hover) !important;
}

/* TailAdmin Light Background with Left Icon action badges. */
.app-tailadmin-action-row {
  align-items: center;
}

.app-tailadmin-light-btn {
  display: inline-flex;
  min-height: 1.75rem;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  padding: 0.125rem 0.625rem;
  border: 0;
  border-radius: 999px;
  font-family: var(--font-sneat-buttons);
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.25rem;
  text-decoration: none;
  white-space: nowrap;
  appearance: none;
  cursor: pointer;
  transition: background-color 160ms ease, color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.app-tailadmin-light-btn svg,
.app-tailadmin-light-btn::before {
  flex: 0 0 1em;
  width: 1em;
  height: 1em;
  fill: currentColor;
}

.app-tailadmin-light-btn::before {
  display: none;
  background: currentColor;
  content: "";
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: contain;
}

.app-tailadmin-light-btn--icon-plus::before,
.app-tailadmin-light-btn--icon-back::before,
.app-tailadmin-light-btn--icon-home::before,
.app-tailadmin-light-btn--icon-external::before,
.app-tailadmin-light-btn--icon-folder::before {
  display: inline-block;
}

.app-tailadmin-light-btn--icon-plus::before {
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.25012 3C5.25012 2.58579 5.58591 2.25 6.00012 2.25C6.41433 2.25 6.75012 2.58579 6.75012 3V5.25012L9.00034 5.25012C9.41455 5.25012 9.75034 5.58591 9.75034 6.00012C9.75034 6.41433 9.41455 6.75012 9.00034 6.75012H6.75012V9.00034C6.75012 9.41455 6.41433 9.75034 6.00012 9.75034C5.58591 9.75034 5.25012 9.41455 5.25012 9.00034L5.25012 6.75012H3C2.58579 6.75012 2.25 6.41433 2.25 6.00012C2.25 5.58591 2.58579 5.25012 3 5.25012H5.25012V3Z'/%3E%3C/svg%3E");
}

.app-tailadmin-light-btn--icon-back::before {
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.78 3.22a.75.75 0 0 1 0 1.06L4.81 7.25h8.44a.75.75 0 0 1 0 1.5H4.81l2.97 2.97a.75.75 0 1 1-1.06 1.06L2.47 8.53a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0Z'/%3E%3C/svg%3E");
}

.app-tailadmin-light-btn--icon-home::before {
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.49 3.61a.85.85 0 0 1 1.02 0l3.83 2.88c.21.16.34.41.34.68v4.66a.85.85 0 0 1-.85.85H8.65v-1.85a.65.65 0 1 0-1.3 0v1.85H4.17a.85.85 0 0 1-.85-.85V7.17c0-.27.13-.52.34-.68L7.49 3.61Z'/%3E%3C/svg%3E");
}

.app-tailadmin-light-btn--icon-external::before {
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.25 2.75A.75.75 0 0 1 10 2h3.25a.75.75 0 0 1 .75.75V6a.75.75 0 0 1-1.5 0V4.56L8.53 8.53a.75.75 0 0 1-1.06-1.06l3.97-3.97H10a.75.75 0 0 1-.75-.75ZM3.75 4h3a.75.75 0 0 1 0 1.5h-3a.25.25 0 0 0-.25.25v6.5c0 .14.11.25.25.25h6.5c.14 0 .25-.11.25-.25v-3a.75.75 0 0 1 1.5 0v3A1.75 1.75 0 0 1 10.25 14h-6.5A1.75 1.75 0 0 1 2 12.25v-6.5C2 4.78 2.78 4 3.75 4Z'/%3E%3C/svg%3E");
}

.app-tailadmin-light-btn--icon-folder::before {
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 4.75C2 3.78 2.78 3 3.75 3h2.3c.46 0 .9.18 1.24.51l.74.74h4.22c.97 0 1.75.78 1.75 1.75v5.25c0 .97-.78 1.75-1.75 1.75h-8.5A1.75 1.75 0 0 1 2 11.25v-6.5Z'/%3E%3C/svg%3E");
}

.app-tailadmin-light-btn:hover,
.app-tailadmin-light-btn:focus-visible {
  color: inherit;
  box-shadow: 0 0 0 3px rgba(15, 159, 143, 0.12);
  transform: translateY(-1px);
}

.app-tailadmin-light-btn--primary {
  background: #ecfdf9;
  color: #0f9f8f;
}

.app-tailadmin-light-btn--primary:hover,
.app-tailadmin-light-btn--primary:focus-visible {
  background: #ccfbf1;
  color: #0b8579;
}

.app-tailadmin-light-btn--success {
  background: #ecfdf3;
  color: #039855;
}

.app-tailadmin-light-btn--success:hover,
.app-tailadmin-light-btn--success:focus-visible {
  background: #d1fadf;
  color: #027a48;
}

.app-tailadmin-light-btn--light {
  background: #f2f4f7;
  color: #344054;
}

.app-tailadmin-light-btn--light:hover,
.app-tailadmin-light-btn--light:focus-visible {
  background: #e4e7ec;
  color: #1d2939;
}

@media (max-width: 575.98px) {
  .app-tailadmin-action-row {
    width: 100%;
  }

  .app-tailadmin-light-btn {
    flex: 1 1 100%;
    min-height: 2.15rem;
    white-space: normal;
  }
}

@media (min-width: 992px) {
  .app-notification-menu {
    width: 430px;
    margin-top: 0.55rem;
  }
}

@media (min-width: 576px) and (max-width: 991.98px) {
  .app-notification-menu {
    width: min(420px, calc(100vw - 2rem));
    margin-top: 0.5rem;
    transform: translateX(-0.25rem);
  }
}

@media (max-width: 575.98px) {
  .app-notification-dropdown {
    position: static;
  }

  .app-notification-menu {
    position: fixed !important;
    top: calc(4.65rem + env(safe-area-inset-top)) !important;
    bottom: calc(5.25rem + env(safe-area-inset-bottom)) !important;
    left: 0.75rem !important;
    right: 0.75rem !important;
    width: auto !important;
    height: auto;
    max-width: none;
    max-height: none;
    margin: 0;
    transform: none !important;
    z-index: 1080;
  }

  .app-notification-list {
    height: 100%;
    max-height: none;
    overscroll-behavior: contain;
  }

  .app-notification-item {
    padding: 0.82rem 0.85rem;
  }

  .app-notification-avatar {
    width: 2.45rem;
    height: 2.45rem;
  }

  .app-notification-topline {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    align-items: start !important;
    gap: 0.18rem !important;
  }

  .app-notification-title {
    white-space: normal;
  }

  .app-notification-body {
    display: block;
    overflow: visible;
    -webkit-line-clamp: unset;
  }

  .app-notification-meta {
    white-space: normal;
  }

  .app-notification-menu-header {
    gap: 0.4rem;
    padding-inline: 0.75rem;
  }

  .app-notification-read-all {
    max-width: 9.5rem;
    white-space: normal;
  }

  .notifications-page__heading {
    align-items: stretch !important;
  }

  .notifications-page__actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }

  .notifications-page__actions form,
  .notifications-page__actions .app-tailadmin-light-btn {
    width: 100%;
  }

  .notifications-page__item {
    padding: 0.9rem 0.85rem;
  }

  .notifications-page__item-layout {
    grid-template-columns: 2.45rem minmax(0, 1fr);
    gap: 0.65rem;
  }

  .notifications-page__topline {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.2rem;
  }

  .notifications-page__date {
    white-space: normal;
  }
}

/* Compact sidebar pass: reduce vertical travel without reintroducing bold menu text. */
.sidebar .sidebar-nav {
  padding: 0.38rem 0.58rem 0.72rem;
}

.sidebar .nav-title {
  margin: 0.42rem 0 0.2rem 0.25rem;
  font-size: 0.76rem;
  line-height: 1.15;
  font-weight: 400 !important;
}

.sidebar .nav-link {
  min-height: 42px;
  padding: 0.48rem 0.62rem;
  gap: 0.55rem;
  font-size: 1rem;
  line-height: 1.18;
  font-weight: 400 !important;
}

.sidebar .app-sidebar-group {
  gap: 0.12rem;
}

.sidebar .app-sidebar-subnav {
  margin-bottom: 0.18rem;
  padding-left: 0.38rem;
}

.sidebar .app-sidebar-subnav .nav-link {
  min-height: 40px;
}

.sidebar .app-sidebar-label,
.sidebar .app-sidebar-group-title,
.sidebar .sidebar-footer .btn {
  font-weight: 400 !important;
}


/* AppPerfecta public client request portal branding */
.client-request-public-page {
  --ap-blue: #2d5bff;
  --ap-blue-dark: #163fd3;
  --ap-ink: #0b1020;
  --ap-muted: #53627a;
  --ap-teal: #0f766e;
  --ap-orange: #ff9f1c;
  --ap-border: #dbe5f3;
  --ap-surface: #ffffff;
  background:
    linear-gradient(135deg, rgba(45, 91, 255, 0.10), rgba(15, 118, 110, 0.08) 46%, rgba(255, 159, 28, 0.08)),
    #f6f8fc;
  color: var(--ap-ink);
}

.client-request-public-shell {
  max-width: 1180px;
}

.client-request-public-header {
  position: relative;
  background: linear-gradient(135deg, #ffffff 0%, #eef4ff 100%);
  border: 1px solid rgba(45, 91, 255, 0.16);
  border-radius: 18px;
  padding: clamp(1.4rem, 3vw, 2.35rem);
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.10);
  overflow: hidden;
}

.client-request-public-header::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 7px;
  background: linear-gradient(180deg, var(--ap-blue), var(--ap-teal));
}

.client-request-public-header .pp-brand-block {
  display: inline-flex;
  align-items: center;
  max-width: min(320px, 88vw);
  margin-bottom: 1.2rem;
  padding: 0;
  background: transparent;
}

.client-request-public-header .pp-brand-block img {
  display: block;
  width: min(300px, 82vw);
  height: auto;
  max-height: 74px;
  object-fit: contain;
}

.client-request-public-header .pp-public-status-chip {
  background: rgba(45, 91, 255, 0.10);
  color: var(--ap-blue-dark);
  border: 1px solid rgba(45, 91, 255, 0.18);
  font-weight: 700;
  letter-spacing: 0.04em;
}

.client-request-public-header h1 {
  color: var(--ap-ink);
  font-weight: 700;
  letter-spacing: 0;
}

.client-request-public-header p {
  color: var(--ap-muted);
  max-width: 760px;
}

.client-request-public-card,
.client-request-public-item {
  border: 1px solid var(--ap-border);
  border-radius: 14px;
  box-shadow: 0 18px 50px rgba(15, 23, 42, 0.08);
}

.client-request-public-card h2,
.client-request-public-item h3 {
  color: var(--ap-ink);
  letter-spacing: 0;
}

.client-request-public-item p,
.client-request-public-note,
.client-request-attachment-hint,
.client-request-voice__head p,
.client-request-voice__hint {
  color: var(--ap-muted);
}

.client-request-public-page .btn.btn-dark,
.client-request-public-page .client-request-voice__add,
.client-request-public-page .client-request-voice__stop {
  background: var(--ap-blue);
  border-color: var(--ap-blue);
  color: #fff;
  box-shadow: 0 12px 26px rgba(45, 91, 255, 0.22);
}

.client-request-public-page .btn.btn-dark:hover,
.client-request-public-page .btn.btn-dark:focus,
.client-request-public-page .client-request-voice__add:hover,
.client-request-public-page .client-request-voice__stop:hover {
  background: var(--ap-blue-dark);
  border-color: var(--ap-blue-dark);
  color: #fff;
}

.client-request-public-check__box.is-done {
  background: var(--ap-teal);
  border-color: var(--ap-teal);
}

.client-request-public-check__box.is-done::after {
  border-color: #fff;
}

.client-request-public-attachments,
.client-request-public-note,
.client-request-voice {
  background: #f8fbff;
  border-color: var(--ap-border);
}

.client-request-voice[data-voice-state="recording"] .client-request-voice__status {
  color: #b42318;
}

.client-request-voice[data-voice-state="ready"] .client-request-voice__status {
  color: var(--ap-teal);
}

@media (max-width: 640px) {
  .client-request-public-header .pp-brand-block img {
    width: min(250px, 78vw);
  }
}


.client-request-clarify {
  margin-top: 1rem;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  padding-top: 0.85rem;
}

.client-request-clarify summary {
  cursor: pointer;
  color: var(--ap-ink, #111827);
  font-weight: 700;
  font-size: 0.94rem;
}

.client-request-clarify__form {
  display: grid;
  gap: 0.85rem;
  margin-top: 0.85rem;
}

.client-request-voice--compact {
  padding: 0.85rem;
  border-radius: 10px;
}

.client-request-voice--compact .client-request-voice__head p {
  max-width: 22rem;
}

/* ngx-admin Material Light public client request portal */
body.client-request-public-page.ngx-material-portal {
  --ngx-primary: #007bff;
  --ngx-primary-dark: #0056b3;
  --ngx-text: #424242;
  --ngx-strong: rgba(0, 0, 0, 0.87);
  --ngx-muted: #838383;
  --ngx-page: #f5f5f5;
  --ngx-sidebar: #ebebeb;
  --ngx-card: #ffffff;
  --ngx-card-header: #f5f5f5;
  --ngx-border: #e0e0e0;
  --ngx-input-border: rgba(0, 0, 0, 0.42);
  --ngx-success: #60af20;
  --ngx-warning: #ffaa00;
  --ngx-danger: #f44336;
  --ngx-info: #0095ff;
  --ngx-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);
  min-height: 100vh;
  margin: 0;
  background: var(--ngx-page);
  color: var(--ngx-text);
  font-family: Roboto, Arial, sans-serif;
  font-size: 15px;
  line-height: 20px;
}

.ngx-material-portal .ngx-public-topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  min-height: 76px;
  padding: 0 24px;
  background: var(--ngx-primary);
  color: #fff;
  box-shadow: var(--ngx-shadow);
}

.ngx-material-portal .ngx-public-topbar__left,
.ngx-material-portal .ngx-public-topbar__center,
.ngx-material-portal .ngx-public-topbar__right {
  display: flex;
  align-items: center;
  gap: 18px;
  min-width: 0;
}

.ngx-material-portal .ngx-public-topbar__right {
  justify-content: flex-end;
}

.ngx-material-portal .ngx-public-menu-button {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  width: 26px;
  height: 26px;
  padding: 0;
  border: 0;
  background: transparent;
  opacity: 1;
}

.ngx-material-portal .ngx-public-menu-button span {
  display: block;
  width: 21px;
  height: 2px;
  background: #fff;
  border-radius: 2px;
}

.ngx-material-portal .ngx-public-divider {
  width: 1px;
  height: 30px;
  background: rgba(255, 255, 255, 0.45);
}

.ngx-material-portal .ngx-public-brand {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  text-decoration: none;
}

.ngx-material-portal .ngx-public-brand img {
  display: block;
  width: min(196px, 32vw);
  max-height: 42px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

.ngx-material-portal .ngx-public-theme-select {
  display: inline-flex;
  align-items: center;
  min-height: 39px;
  padding: 7px 36px 7px 18px;
  background: #fafafa;
  color: var(--ngx-text);
  font-size: 15px;
  line-height: 24px;
}

.ngx-material-portal .ngx-public-support,
.ngx-material-portal .ngx-public-contact {
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0;
  white-space: nowrap;
}

.ngx-material-portal .ngx-public-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 2px solid rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  background: #fff;
  color: var(--ngx-primary);
  font-size: 13px;
  font-weight: 700;
}

.ngx-material-portal .ngx-public-layout {
  display: grid;
  grid-template-columns: 256px minmax(0, 1fr);
  min-height: calc(100vh - 76px);
}

.ngx-material-portal .ngx-public-sidebar {
  background: var(--ngx-sidebar);
  color: var(--ngx-text);
  box-shadow: var(--ngx-shadow);
}

.ngx-material-portal .ngx-public-sidebar nav {
  position: sticky;
  top: 96px;
  display: grid;
  gap: 0;
  padding: 24px 0 32px;
}

.ngx-material-portal .ngx-public-nav-item {
  display: flex;
  align-items: center;
  min-height: 48px;
  gap: 12px;
  padding: 0 20px;
  color: var(--ngx-text);
  font-size: 14px;
  text-decoration: none;
}

.ngx-material-portal .ngx-public-nav-item:hover,
.ngx-material-portal .ngx-public-nav-item.is-active {
  background: rgba(0, 0, 0, 0.08);
  color: var(--ngx-primary);
}

.ngx-material-portal .ngx-public-nav-icon {
  width: 20px;
  color: currentColor;
  text-align: center;
}

.ngx-material-portal .client-request-public-shell {
  width: min(1114px, calc(100% - 72px));
  max-width: none;
  margin: 0 auto;
  padding: 36px 0 48px;
}

.ngx-material-portal .client-request-public-header {
  margin: 0 0 30px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.ngx-material-portal .client-request-public-header::before {
  content: none;
}

.ngx-material-portal .client-request-public-header .pp-public-status-chip {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  margin-bottom: 12px;
  padding: 0 12px;
  border: 1px solid rgba(0, 123, 255, 0.22);
  border-radius: 4px;
  background: rgba(0, 123, 255, 0.08);
  color: var(--ngx-primary);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

.ngx-material-portal .client-request-public-header h1 {
  margin: 0 0 8px;
  color: var(--ngx-strong);
  font-size: 28px;
  font-weight: 500;
  line-height: 36px;
}

.ngx-material-portal .client-request-public-header p {
  max-width: 760px;
  margin: 0;
  color: rgba(0, 0, 0, 0.6);
  font-size: 15px;
  line-height: 24px;
}

.ngx-material-portal .alert {
  border-radius: 4px;
  box-shadow: var(--ngx-shadow);
}

.ngx-material-portal .client-request-public-grid {
  grid-template-columns: minmax(360px, 0.95fr) minmax(420px, 1.05fr);
  gap: 28px;
  align-items: start;
}

.ngx-material-portal .client-request-public-card,
.ngx-material-portal .client-request-public-item {
  overflow: hidden;
  border: 0;
  border-radius: 4px 4px 2px 2px;
  background: var(--ngx-card);
  box-shadow: var(--ngx-shadow);
}

.ngx-material-portal .client-request-public-card {
  padding: 0 24px 24px;
}

.ngx-material-portal .client-request-public-card > h2 {
  min-height: 57px;
  margin: 0 -24px 16px;
  padding: 16px 24px;
  border-radius: 4px 4px 0 0;
  background: var(--ngx-card-header);
  color: var(--ngx-text);
  font-size: 15px;
  font-weight: 600;
  line-height: 24px;
}

.ngx-material-portal .client-request-public-card .form-label,
.ngx-material-portal .client-request-clarify .form-label {
  margin-bottom: 6px;
  color: rgba(0, 0, 0, 0.6);
  font-size: 13px;
  font-weight: 500;
  line-height: 18px;
}

.ngx-material-portal .client-request-public-card .form-control,
.ngx-material-portal .client-request-clarify .form-control,
.ngx-material-portal .client-request-voice .form-control {
  min-height: 50px;
  padding: 12px 16px;
  border: 1px solid var(--ngx-input-border);
  border-radius: 4px;
  background: transparent;
  color: var(--ngx-text);
  font-size: 15px;
  line-height: 24px;
  box-shadow: none;
}

.ngx-material-portal .client-request-public-card textarea.form-control,
.ngx-material-portal .client-request-clarify textarea.form-control,
.ngx-material-portal .client-request-voice textarea.form-control {
  min-height: 120px;
}

.ngx-material-portal .form-control:focus {
  border-color: var(--ngx-primary);
  box-shadow: 0 0 0 1px var(--ngx-primary);
}

.ngx-material-portal .client-request-attachment-hint,
.ngx-material-portal .client-request-voice__head p,
.ngx-material-portal .client-request-voice__hint,
.ngx-material-portal .client-request-public-item p,
.ngx-material-portal .client-request-public-note {
  color: rgba(0, 0, 0, 0.6);
  font-size: 14px;
  line-height: 22px;
}

.ngx-material-portal .btn.btn-dark,
.ngx-material-portal .client-request-voice__stop {
  min-height: 44px;
  padding: 0 24px;
  border: 0;
  border-radius: 4px;
  background: var(--ngx-primary);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 16px;
  text-transform: uppercase;
  box-shadow: none;
}

.ngx-material-portal .btn.btn-dark:hover,
.ngx-material-portal .btn.btn-dark:focus,
.ngx-material-portal .client-request-voice__stop:hover {
  background: var(--ngx-primary-dark);
  color: #fff;
}

.ngx-material-portal .client-request-public-list {
  gap: 20px;
}

.ngx-material-portal .client-request-public-item {
  padding: 0 24px 20px;
}

.ngx-material-portal .client-request-public-item > .d-flex:first-child {
  min-height: 57px;
  margin: 0 -24px 18px;
  padding: 16px 24px;
  background: var(--ngx-card-header);
}

.ngx-material-portal .client-request-public-item h3 {
  color: var(--ngx-text);
  font-size: 15px;
  font-weight: 600;
  line-height: 24px;
}

.ngx-material-portal .client-request-public-item .small {
  margin-top: 3px;
  color: var(--ngx-muted) !important;
  font-size: 13px;
  line-height: 18px;
}

.ngx-material-portal .badge {
  min-height: 26px;
  padding: 5px 10px;
  border-radius: 4px;
  background: rgba(0, 123, 255, 0.1) !important;
  color: var(--ngx-primary) !important;
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
}

.ngx-material-portal .client-request-public-checklist {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 16px;
  margin-top: 18px;
  padding: 16px;
  border: 1px solid var(--ngx-border);
  border-radius: 4px;
  background: #fff;
}

.ngx-material-portal .client-request-public-check {
  min-width: 0;
  gap: 10px;
  color: var(--ngx-text);
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
}

.ngx-material-portal .client-request-public-check__box {
  width: 20px;
  height: 20px;
  border: 1px solid var(--ngx-border);
  border-radius: 3px;
}

.ngx-material-portal .client-request-public-check__box.is-done {
  border-color: var(--ngx-primary);
  background: var(--ngx-primary);
  box-shadow: none;
}

.ngx-material-portal .client-request-public-check__box.is-done::after {
  content: "";
  display: block;
  width: 7px;
  height: 12px;
  margin: 2px auto 0;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.ngx-material-portal .client-request-public-attachments,
.ngx-material-portal .client-request-public-note,
.ngx-material-portal .client-request-voice {
  border: 1px solid var(--ngx-border);
  border-radius: 4px;
  background: #fff;
}

.ngx-material-portal .client-request-public-attachments {
  border-radius: 4px;
  color: var(--ngx-text);
}

.ngx-material-portal .client-request-public-note {
  border-left-color: var(--ngx-primary);
}

.ngx-material-portal .client-request-voice {
  padding: 16px;
  box-shadow: none;
}

.ngx-material-portal .client-request-voice__add,
.ngx-material-portal .client-request-voice__remove {
  border-radius: 4px;
  box-shadow: none;
}

.ngx-material-portal .client-request-voice__add {
  width: 40px;
  height: 40px;
  flex-basis: 40px;
  background: var(--ngx-primary);
  color: #fff;
}

.ngx-material-portal .client-request-voice__add:hover {
  background: var(--ngx-primary-dark);
}

.ngx-material-portal .client-request-voice__status {
  min-height: 30px;
  border-radius: 4px;
  background: rgba(0, 123, 255, 0.08);
  color: var(--ngx-primary);
  font-size: 13px;
  font-weight: 700;
}

.ngx-material-portal .client-request-voice[data-voice-state="recording"] .client-request-voice__status {
  background: rgba(244, 67, 54, 0.1);
  color: var(--ngx-danger);
}

.ngx-material-portal .client-request-voice[data-voice-state="ready"] .client-request-voice__status {
  background: rgba(96, 175, 32, 0.12);
  color: var(--ngx-success);
}

.ngx-material-portal .client-request-voice[data-voice-state="transcribing"] .client-request-voice__status {
  background: rgba(0, 149, 255, 0.12);
  color: var(--ngx-info);
}

.ngx-material-portal .client-request-voice[data-voice-state="error"] .client-request-voice__status {
  background: rgba(244, 67, 54, 0.1);
  color: var(--ngx-danger);
}

.ngx-material-portal .client-request-clarify {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--ngx-border);
}

.ngx-material-portal .client-request-clarify summary {
  color: var(--ngx-primary);
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
}

.ngx-material-portal .client-request-clarify__form {
  gap: 16px;
}

@media (max-width: 1180px) {
  .ngx-material-portal .ngx-public-layout {
    grid-template-columns: 220px minmax(0, 1fr);
  }

  .ngx-material-portal .client-request-public-shell {
    width: min(100% - 40px, 980px);
  }

  .ngx-material-portal .client-request-public-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .ngx-material-portal .ngx-public-topbar {
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 68px;
    padding: 0 16px;
  }

  .ngx-material-portal .ngx-public-topbar__center {
    display: none;
  }

  .ngx-material-portal .ngx-public-contact {
    display: none;
  }

  .ngx-material-portal .ngx-public-brand img {
    width: min(172px, 52vw);
  }

  .ngx-material-portal .ngx-public-layout {
    display: block;
    min-height: calc(100vh - 68px);
  }

  .ngx-material-portal .ngx-public-sidebar {
    display: none;
  }

  .ngx-material-portal .client-request-public-shell {
    width: min(100% - 24px, 640px);
    padding: 24px 0 36px;
  }

  .ngx-material-portal .client-request-public-header h1 {
    font-size: 24px;
    line-height: 32px;
  }

  .ngx-material-portal .client-request-public-card,
  .ngx-material-portal .client-request-public-item {
    border-radius: 4px;
  }

  .ngx-material-portal .client-request-public-card {
    padding: 0 16px 18px;
  }

  .ngx-material-portal .client-request-public-card > h2 {
    margin-right: -16px;
    margin-left: -16px;
    padding-right: 16px;
    padding-left: 16px;
  }

  .ngx-material-portal .client-request-public-item {
    padding-right: 16px;
    padding-left: 16px;
  }

  .ngx-material-portal .client-request-public-item > .d-flex:first-child {
    margin-right: -16px;
    margin-left: -16px;
    padding-right: 16px;
    padding-left: 16px;
  }

  .ngx-material-portal .client-request-public-checklist {
    grid-template-columns: 1fr;
  }
}

/* ngx-admin client portal polish: readable AppPerfecta logo and Material buttons */
body.client-request-public-page.ngx-material-portal .ngx-public-brand {
  min-height: 39px;
  padding: 4px 12px;
  border-radius: 4px;
  background: #fafafa;
}

body.client-request-public-page.ngx-material-portal .ngx-public-brand img {
  filter: none;
}

body.client-request-public-page.ngx-material-portal .btn.btn-dark,
body.client-request-public-page.ngx-material-portal .btn.btn-dark.btn-lg,
body.client-request-public-page.ngx-material-portal .client-request-voice__stop {
  border-radius: 4px !important;
  background: var(--ngx-primary) !important;
  border-color: var(--ngx-primary) !important;
  color: #fff !important;
  box-shadow: none !important;
}

body.client-request-public-page.ngx-material-portal .btn.btn-dark:hover,
body.client-request-public-page.ngx-material-portal .btn.btn-dark:focus,
body.client-request-public-page.ngx-material-portal .client-request-voice__stop:hover {
  background: var(--ngx-primary-dark) !important;
  border-color: var(--ngx-primary-dark) !important;
}

/* AppPerfecta brand correction: no purple, real logo, responsive drawer sidebar */
body.client-request-public-page.ngx-material-portal {
  --ngx-primary: #007bff;
  --ngx-primary-dark: #0056b3;
  --ngx-accent: #f3c623;
  --ngx-accent-dark: #f1a208;
  --ngx-text: #212529;
  --ngx-strong: #1d2124;
  --ngx-muted: #6c757d;
  --ngx-page: #f8f9fa;
  --ngx-sidebar: #ffffff;
  --ngx-card-header: #f8f9fa;
  --ngx-border: #dee2e6;
  --ngx-input-border: #adb5bd;
  background: var(--ngx-page) !important;
}

body.client-request-public-page.ngx-material-portal .ngx-public-topbar {
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  background: #ffffff !important;
  color: var(--ngx-text) !important;
  border-bottom: 3px solid var(--ngx-accent);
  box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.16), 0 1px 1px 0 rgba(0, 0, 0, 0.10), 0 1px 3px 0 rgba(0, 0, 0, 0.08) !important;
}

body.client-request-public-page.ngx-material-portal .ngx-public-menu-button {
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  cursor: pointer;
}

body.client-request-public-page.ngx-material-portal .ngx-public-menu-button span {
  background: var(--ngx-primary) !important;
}

body.client-request-public-page.ngx-material-portal .ngx-public-divider {
  background: var(--ngx-border) !important;
}

body.client-request-public-page.ngx-material-portal .ngx-public-brand {
  min-height: 44px;
  padding: 3px 10px;
  background: transparent !important;
}

body.client-request-public-page.ngx-material-portal .ngx-public-brand img {
  width: min(210px, 44vw);
  max-height: 42px;
  object-fit: contain;
  filter: none !important;
}

body.client-request-public-page.ngx-material-portal .ngx-public-theme-select {
  border: 1px solid var(--ngx-border);
  background: #fff !important;
  color: var(--ngx-text) !important;
}

body.client-request-public-page.ngx-material-portal .ngx-public-support,
body.client-request-public-page.ngx-material-portal .ngx-public-contact {
  color: var(--ngx-primary) !important;
}

body.client-request-public-page.ngx-material-portal .ngx-public-avatar {
  border-color: var(--ngx-primary);
  background: var(--ngx-primary);
  color: #fff;
}

body.client-request-public-page.ngx-material-portal .ngx-public-layout {
  grid-template-columns: 0 minmax(0, 1fr);
  transition: grid-template-columns 0.18s ease;
}

body.client-request-public-page.ngx-material-portal.is-sidebar-open .ngx-public-layout {
  grid-template-columns: 256px minmax(0, 1fr);
}

body.client-request-public-page.ngx-material-portal .ngx-public-sidebar {
  overflow: hidden;
  width: 0;
  background: var(--ngx-sidebar) !important;
  border-right: 1px solid var(--ngx-border);
  box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.16), 0 1px 1px 0 rgba(0, 0, 0, 0.10), 0 1px 3px 0 rgba(0, 0, 0, 0.08) !important;
  transition: width 0.18s ease;
}

body.client-request-public-page.ngx-material-portal.is-sidebar-open .ngx-public-sidebar {
  width: 256px;
}

body.client-request-public-page.ngx-material-portal .ngx-public-sidebar__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 56px;
  padding: 0 16px 0 20px;
  border-bottom: 1px solid var(--ngx-border);
  color: var(--ngx-text);
  font-weight: 700;
}

body.client-request-public-page.ngx-material-portal .ngx-public-sidebar__head button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  border: 0;
  background: transparent;
  color: var(--ngx-primary);
  font-size: 28px;
  line-height: 1;
}

body.client-request-public-page.ngx-material-portal .ngx-public-nav-item:hover,
body.client-request-public-page.ngx-material-portal .ngx-public-nav-item.is-active {
  background: #e9ecef !important;
  color: var(--ngx-primary) !important;
  border-left: 3px solid var(--ngx-accent);
  padding-left: 17px;
}

body.client-request-public-page.ngx-material-portal .client-request-public-header .pp-public-status-chip,
body.client-request-public-page.ngx-material-portal .badge {
  border-color: rgba(0, 123, 255, 0.18) !important;
  background: rgba(0, 123, 255, 0.09) !important;
  color: var(--ngx-primary) !important;
}

body.client-request-public-page.ngx-material-portal .client-request-public-note {
  border-left-color: var(--ngx-primary) !important;
}

body.client-request-public-page.ngx-material-portal .client-request-public-check__box.is-done,
body.client-request-public-page.ngx-material-portal .client-request-voice__add,
body.client-request-public-page.ngx-material-portal .btn.btn-dark,
body.client-request-public-page.ngx-material-portal .btn.btn-dark.btn-lg,
body.client-request-public-page.ngx-material-portal .client-request-voice__stop {
  background: var(--ngx-primary) !important;
  border-color: var(--ngx-primary) !important;
  color: #fff !important;
}

body.client-request-public-page.ngx-material-portal .client-request-voice__add:hover,
body.client-request-public-page.ngx-material-portal .btn.btn-dark:hover,
body.client-request-public-page.ngx-material-portal .btn.btn-dark:focus,
body.client-request-public-page.ngx-material-portal .client-request-voice__stop:hover {
  background: var(--ngx-primary-dark) !important;
  border-color: var(--ngx-primary-dark) !important;
}

body.client-request-public-page.ngx-material-portal .client-request-voice__status,
body.client-request-public-page.ngx-material-portal .client-request-clarify summary {
  color: var(--ngx-primary) !important;
}

body.client-request-public-page.ngx-material-portal .client-request-voice__status {
  background: rgba(0, 123, 255, 0.09) !important;
}

body.client-request-public-page.ngx-material-portal .form-control:focus {
  border-color: var(--ngx-primary) !important;
  box-shadow: 0 0 0 1px var(--ngx-primary) !important;
}

body.client-request-public-page.ngx-material-portal .client-request-public-card,
body.client-request-public-page.ngx-material-portal .client-request-public-item {
  box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.16), 0 1px 1px 0 rgba(0, 0, 0, 0.10), 0 1px 3px 0 rgba(0, 0, 0, 0.08) !important;
}

@media (max-width: 760px) {
  body.client-request-public-page.ngx-material-portal .ngx-public-topbar {
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 64px;
    padding: 0 10px;
  }

  body.client-request-public-page.ngx-material-portal .ngx-public-topbar__left {
    gap: 6px;
  }

  body.client-request-public-page.ngx-material-portal .ngx-public-brand {
    padding: 2px 4px;
  }

  body.client-request-public-page.ngx-material-portal .ngx-public-brand img {
    width: min(162px, 50vw);
    max-height: 34px;
  }

  body.client-request-public-page.ngx-material-portal .ngx-public-layout,
  body.client-request-public-page.ngx-material-portal.is-sidebar-open .ngx-public-layout {
    display: block;
  }

  body.client-request-public-page.ngx-material-portal .ngx-public-sidebar {
    position: fixed;
    z-index: 40;
    top: 64px;
    left: 0;
    bottom: 0;
    width: min(82vw, 304px);
    transform: translateX(-105%);
    transition: transform 0.2s ease;
  }

  body.client-request-public-page.ngx-material-portal.is-sidebar-open .ngx-public-sidebar {
    width: min(82vw, 304px);
    transform: translateX(0);
  }

  body.client-request-public-page.ngx-material-portal .ngx-public-sidebar-backdrop {
    position: fixed;
    inset: 64px 0 0;
    z-index: 35;
    border: 0;
    background: rgba(33, 37, 41, 0.38);
  }

  body.client-request-public-page.ngx-material-portal .client-request-public-shell {
    width: min(100% - 16px, 640px);
    padding: 18px 0 32px;
  }

  body.client-request-public-page.ngx-material-portal .client-request-public-card .form-control,
  body.client-request-public-page.ngx-material-portal .client-request-clarify .form-control,
  body.client-request-public-page.ngx-material-portal .client-request-voice .form-control {
    min-height: 48px;
    font-size: 16px;
  }

  body.client-request-public-page.ngx-material-portal .client-request-public-item > .d-flex:first-child {
    flex-wrap: wrap;
  }
}

/* AppPerfecta sidebar drawer display fix */
@media (max-width: 760px) {
  body.client-request-public-page.ngx-material-portal .ngx-public-sidebar {
    display: block !important;
    visibility: visible;
  }

  body.client-request-public-page.ngx-material-portal:not(.is-sidebar-open) .ngx-public-sidebar {
    pointer-events: none;
  }

  body.client-request-public-page.ngx-material-portal.is-sidebar-open .ngx-public-sidebar {
    pointer-events: auto;
  }
}

/* Client request workflow drawers and compact task list */
body.client-request-public-page.ngx-material-portal.has-client-panel-open {
  overflow: hidden;
}

body.client-request-public-page.ngx-material-portal .ngx-public-nav-item[type="button"] {
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
}

body.client-request-public-page.ngx-material-portal .client-request-task-board {
  padding: 0 24px 24px;
}

body.client-request-public-page.ngx-material-portal .client-request-board-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 72px;
  margin: 0 -24px 18px;
  padding: 16px 24px;
  background: var(--ngx-card-header);
}

body.client-request-public-page.ngx-material-portal .client-request-board-head h2 {
  margin: 0;
  color: var(--ngx-text);
  font-size: 15px;
  font-weight: 600;
  line-height: 24px;
}

body.client-request-public-page.ngx-material-portal .client-request-board-head p {
  margin: 2px 0 0;
  color: var(--ngx-muted);
  font-size: 13px;
  line-height: 18px;
}

body.client-request-public-page.ngx-material-portal .client-request-public-list--compact {
  display: grid;
  gap: 12px;
}

body.client-request-public-page.ngx-material-portal .client-request-public-item--compact {
  display: grid;
  gap: 10px;
  padding: 14px 16px;
  cursor: pointer;
  transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

body.client-request-public-page.ngx-material-portal .client-request-public-item--compact:hover,
body.client-request-public-page.ngx-material-portal .client-request-public-item--compact:focus-visible {
  border-color: rgba(0, 123, 255, 0.28);
  outline: none;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.13) !important;
  transform: translateY(-1px);
}

body.client-request-public-page.ngx-material-portal .client-request-compact-main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

body.client-request-public-page.ngx-material-portal .client-request-public-item--compact h3 {
  margin: 0;
  color: var(--ngx-text);
  font-size: 15px;
  font-weight: 600;
  line-height: 21px;
}

body.client-request-public-page.ngx-material-portal .client-request-public-item--compact p {
  margin: 0;
  color: rgba(0, 0, 0, 0.6);
  font-size: 14px;
  line-height: 21px;
}

body.client-request-public-page.ngx-material-portal .client-request-compact-progress {
  display: grid;
  grid-template-columns: auto minmax(120px, 1fr);
  align-items: center;
  gap: 10px;
  color: var(--ngx-muted);
  font-size: 12px;
  font-weight: 700;
}

body.client-request-public-page.ngx-material-portal .client-request-compact-bar {
  height: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: #e9ecef;
}

body.client-request-public-page.ngx-material-portal .client-request-compact-bar i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--ngx-primary);
}

body.client-request-public-page.ngx-material-portal .client-request-overlay {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  justify-content: flex-end;
  background: transparent;
  pointer-events: none;
}

body.client-request-public-page.ngx-material-portal .client-request-overlay[hidden] {
  display: none !important;
}

body.client-request-public-page.ngx-material-portal .client-request-overlay.is-open {
  pointer-events: auto;
}

body.client-request-public-page.ngx-material-portal .client-request-overlay__backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(33, 37, 41, 0.34);
  opacity: 0;
  transition: opacity 0.18s ease;
}

body.client-request-public-page.ngx-material-portal .client-request-overlay.is-open .client-request-overlay__backdrop {
  opacity: 1;
}

body.client-request-public-page.ngx-material-portal .client-request-panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(560px, 94vw);
  max-width: 100%;
  height: 100dvh;
  background: #fff;
  box-shadow: -8px 0 22px rgba(0, 0, 0, 0.18);
  transform: translateX(105%);
  transition: transform 0.2s ease;
}

body.client-request-public-page.ngx-material-portal .client-request-panel--detail {
  width: min(620px, 94vw);
}

body.client-request-public-page.ngx-material-portal .client-request-overlay.is-open .client-request-panel {
  transform: translateX(0);
}

body.client-request-public-page.ngx-material-portal .client-request-panel__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--ngx-border);
  background: var(--ngx-card-header);
}

body.client-request-public-page.ngx-material-portal .client-request-panel__header h2 {
  margin: 0;
  color: var(--ngx-text);
  font-size: 18px;
  font-weight: 600;
  line-height: 24px;
}

body.client-request-public-page.ngx-material-portal .client-request-panel__header p {
  margin: 2px 0 0;
  color: var(--ngx-muted);
  font-size: 13px;
  line-height: 18px;
}

body.client-request-public-page.ngx-material-portal .client-request-panel__header button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  border: 0;
  background: transparent;
  color: var(--ngx-primary);
  font-size: 30px;
  line-height: 1;
}

body.client-request-public-page.ngx-material-portal .client-request-panel__body {
  flex: 1 1 auto;
  overflow: auto;
  padding: 20px;
}

body.client-request-public-page.ngx-material-portal .client-request-detail-content {
  display: grid;
  gap: 16px;
}

body.client-request-public-page.ngx-material-portal .client-request-detail-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--ngx-border);
}

body.client-request-public-page.ngx-material-portal .client-request-detail-title h3 {
  margin: 0;
  color: var(--ngx-text);
  font-size: 18px;
  font-weight: 600;
  line-height: 24px;
}

body.client-request-public-page.ngx-material-portal .client-request-detail-summary {
  margin: 0;
  color: rgba(0, 0, 0, 0.68);
  font-size: 15px;
  line-height: 24px;
}

body.client-request-public-page.ngx-material-portal .client-request-detail-content .client-request-clarify__form {
  padding-top: 16px;
  border-top: 1px solid var(--ngx-border);
}

@media (max-width: 760px) {
  body.client-request-public-page.ngx-material-portal .client-request-task-board {
    padding: 0 12px 14px;
  }

  body.client-request-public-page.ngx-material-portal .client-request-board-head {
    align-items: stretch;
    flex-direction: column;
    margin-right: -12px;
    margin-left: -12px;
    padding: 14px 12px;
  }

  body.client-request-public-page.ngx-material-portal .client-request-board-head .btn {
    width: 100%;
  }

  body.client-request-public-page.ngx-material-portal .client-request-compact-main {
    gap: 8px;
  }

  body.client-request-public-page.ngx-material-portal .client-request-compact-progress {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  body.client-request-public-page.ngx-material-portal .client-request-overlay {
    align-items: center;
    justify-content: center;
    padding: 12px;
  }

  body.client-request-public-page.ngx-material-portal .client-request-panel,
  body.client-request-public-page.ngx-material-portal .client-request-panel--detail,
  body.client-request-public-page.ngx-material-portal .client-request-panel--form {
    width: min(100%, 430px);
    height: min(92dvh, 760px);
    border-radius: 4px;
    box-shadow: 0 14px 42px rgba(0, 0, 0, 0.25);
    transform: translateY(24px) scale(0.98);
    opacity: 0;
  }

  body.client-request-public-page.ngx-material-portal .client-request-overlay.is-open .client-request-panel {
    transform: translateY(0) scale(1);
    opacity: 1;
  }

  body.client-request-public-page.ngx-material-portal .client-request-panel__header,
  body.client-request-public-page.ngx-material-portal .client-request-panel__body {
    padding-right: 14px;
    padding-left: 14px;
  }

  body.client-request-public-page.ngx-material-portal .client-request-detail-title {
    flex-direction: column;
  }
}

/* Client portal sidebar menu width polish */
body.client-request-public-page.ngx-material-portal .ngx-public-nav-item {
  width: 100%;
  white-space: nowrap;
  box-sizing: border-box;
}

/* Client portal sidebar text visibility */
@media (min-width: 761px) {
  body.client-request-public-page.ngx-material-portal.is-sidebar-open .ngx-public-sidebar {
    overflow: visible;
  }
}

/* Client portal modern SVG icons from #ICON-IONICONS-001 reference */
body.client-request-public-page.ngx-material-portal .ngx-public-nav-icon,
body.client-request-public-page.ngx-material-portal .client-request-button-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  color: currentColor;
}

body.client-request-public-page.ngx-material-portal .ngx-public-nav-icon svg,
body.client-request-public-page.ngx-material-portal .client-request-button-icon svg {
  display: block;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 32;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.client-request-public-page.ngx-material-portal .client-request-button-icon {
  margin-right: 8px;
}

body.client-request-public-page.ngx-material-portal .client-request-board-head .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
}


/* Mobile quick actions for client request portal */
body.client-request-public-page.ngx-material-portal .client-request-mobile-fabs {
  display: none;
}

body.client-request-public-page.ngx-material-portal .client-request-mobile-fab {
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border: 1px solid var(--ngx-border);
  border-radius: 999px;
  background: #fff;
  color: var(--ngx-primary);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22);
  text-decoration: none;
  touch-action: manipulation;
  transition: transform 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
}

body.client-request-public-page.ngx-material-portal .client-request-mobile-fab:active {
  transform: translateY(1px) scale(0.98);
  box-shadow: 0 7px 18px rgba(0, 0, 0, 0.2);
}

body.client-request-public-page.ngx-material-portal .client-request-mobile-fab--primary {
  border-color: var(--ngx-primary);
  background: var(--ngx-primary);
  color: #fff;
}

body.client-request-public-page.ngx-material-portal .client-request-mobile-fab__icon,
body.client-request-public-page.ngx-material-portal .client-request-mobile-fab svg {
  display: block;
  width: 24px;
  height: 24px;
}

body.client-request-public-page.ngx-material-portal .client-request-mobile-fab svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 32;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (max-width: 760px) {
  body.client-request-public-page.ngx-material-portal .client-request-board-head .btn[data-open-new-request] {
    display: none !important;
  }

  body.client-request-public-page.ngx-material-portal .client-request-mobile-fabs {
    position: fixed;
    right: max(14px, env(safe-area-inset-right));
    bottom: calc(16px + env(safe-area-inset-bottom));
    z-index: 74;
    display: flex;
    flex-direction: column;
    gap: 12px;
    pointer-events: none;
  }

  body.client-request-public-page.ngx-material-portal .client-request-mobile-fab {
    display: inline-flex;
    pointer-events: auto;
  }

  body.client-request-public-page.ngx-material-portal.has-client-panel-open .client-request-mobile-fabs,
  body.client-request-public-page.ngx-material-portal.is-sidebar-open .client-request-mobile-fabs {
    display: none;
  }
}

/* Secure PIN gate for client request portal */
body.client-request-public-page.ngx-material-portal.client-request-pin-page {
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: 24px;
  background: #f8f9fa !important;
}

body.client-request-public-page.ngx-material-portal .client-request-pin-shell {
  width: min(100%, 380px);
}

body.client-request-public-page.ngx-material-portal .client-request-pin-card {
  display: grid;
  gap: 22px;
  padding: 28px;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.16), 0 1px 1px 0 rgba(0, 0, 0, 0.10), 0 1px 3px 0 rgba(0, 0, 0, 0.08);
}

body.client-request-public-page.ngx-material-portal .client-request-pin-card img {
  width: min(220px, 72vw);
  max-height: 56px;
  object-fit: contain;
}

body.client-request-public-page.ngx-material-portal .client-request-pin-form {
  display: grid;
  gap: 14px;
}

body.client-request-public-page.ngx-material-portal .client-request-pin-form label {
  margin: 0;
  color: var(--ngx-text);
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
}

body.client-request-public-page.ngx-material-portal .client-request-pin-form input {
  width: 100%;
  min-height: 52px;
  padding: 10px 12px;
  border: 1px solid var(--ngx-input-border);
  border-radius: 4px;
  background: #fff;
  color: var(--ngx-text);
  font-size: 24px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 0;
}

body.client-request-public-page.ngx-material-portal .client-request-pin-form input:focus {
  border-color: var(--ngx-primary);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.14);
}

body.client-request-public-page.ngx-material-portal .client-request-pin-error {
  padding: 10px 12px;
  border: 1px solid rgba(244, 67, 54, 0.24);
  border-radius: 4px;
  background: rgba(244, 67, 54, 0.08);
  color: var(--ngx-danger, #dc3545);
  font-size: 13px;
  font-weight: 700;
  line-height: 18px;
}

body.client-request-public-page.ngx-material-portal .badge.text-bg-success {
  border-color: rgba(96, 175, 32, 0.26) !important;
  background: rgba(96, 175, 32, 0.14) !important;
  color: #2f7d1f !important;
}

body.client-request-public-page.ngx-material-portal .client-request-public-item--compact:has(.badge.text-bg-success) {
  border-color: rgba(96, 175, 32, 0.26) !important;
}

body.client-request-public-page.ngx-material-portal .client-request-public-item--compact:has(.badge.text-bg-success) .client-request-compact-bar i {
  background: #60af20;
}

@media (max-width: 760px) {
  body.client-request-public-page.ngx-material-portal.client-request-pin-page {
    align-items: start;
    padding: 18px;
  }

  body.client-request-public-page.ngx-material-portal .client-request-pin-card {
    margin-top: 12dvh;
    padding: 22px;
  }
}

/* Client portal submit loaders */
body.client-request-public-page.ngx-material-portal .client-request-loader {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border: 2px solid rgba(255, 255, 255, 0.45);
  border-top-color: #fff;
  border-radius: 999px;
  animation: client-request-spin 0.75s linear infinite;
}

body.client-request-public-page.ngx-material-portal form.is-submitting button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  cursor: wait;
  opacity: 0.92;
}

body.client-request-public-page.ngx-material-portal form.is-submitting input,
body.client-request-public-page.ngx-material-portal form.is-submitting textarea,
body.client-request-public-page.ngx-material-portal form.is-submitting select {
  opacity: 0.72;
}

@keyframes client-request-spin {
  to { transform: rotate(360deg); }
}

/* Global processing loaders for PizPan forms */
.app-submit-spinner {
  width: 1rem;
  height: 1rem;
  flex: 0 0 1rem;
  border: 2px solid rgba(255, 255, 255, 0.45);
  border-top-color: currentColor;
  border-radius: 999px;
  animation: app-submit-spin 0.75s linear infinite;
}

button.app-submit-is-processing,
input.app-submit-is-processing,
.app-submit-is-processing {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  cursor: wait !important;
  pointer-events: none;
}

form.is-processing {
  cursor: wait;
}

form.is-processing button[type="submit"],
form.is-processing input[type="submit"] {
  cursor: wait !important;
}

.app-is-processing .app-global-floating-save,
.app-is-processing .mobile-quick-nav {
  pointer-events: none;
  opacity: 0.72;
}

@keyframes app-submit-spin {
  to { transform: rotate(360deg); }
}

/* Development client-request progress checks */
.client-request-progress-check {
  display: grid;
  grid-template-columns: 1.15rem minmax(0, 1fr);
  gap: 0.75rem;
  align-items: flex-start;
  padding: 0.85rem 0.95rem;
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: 0.65rem;
  background: #fff;
  cursor: pointer;
  transition: border-color 0.16s ease, background-color 0.16s ease, box-shadow 0.16s ease;
}

.client-request-progress-check:hover {
  border-color: rgba(15, 159, 143, 0.38);
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
}

.client-request-progress-check .form-check-input {
  margin: 0.2rem 0 0;
}

.client-request-progress-check strong,
.client-request-progress-check small {
  display: block;
}

.client-request-progress-check small {
  margin-top: 0.15rem;
  color: #64748b;
}

.client-request-progress-check--done {
  border-color: rgba(15, 159, 143, 0.34);
  background: rgba(15, 159, 143, 0.08);
}
/* PizPan WhatsApp console and client-safe system map */
.lead-whatsapp-history{margin-top:12px;padding-top:10px;border-top:1px solid #e5e7eb;display:grid;gap:7px}.lead-whatsapp-history__row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.82rem}.wa-console{display:grid;gap:20px;max-width:1180px;margin:0 auto}.wa-console__header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.wa-console__header h1{margin:2px 0 4px;font-size:1.75rem}.wa-console__header p{margin:0;color:#667085}.wa-console__eyebrow,.wa-status-card__label{color:#6b7280;font-size:.72rem;font-weight: 700;letter-spacing:.08em;text-transform:uppercase}.wa-status-grid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(360px,1.2fr);gap:18px}.wa-status-card,.wa-qr-card,.wa-table-card{background:#fff;border:1px solid #e2e7ee;border-radius:6px;box-shadow:0 5px 16px rgba(20,32,50,.06)}.wa-status-card{padding:24px;position:relative}.wa-status-card__value{display:block;font-size:1.75rem;margin:8px 0 22px}.wa-status-dot{position:absolute;right:22px;top:26px;width:11px;height:11px;border-radius:50%;background:#f59e0b;box-shadow:0 0 0 5px rgba(245,158,11,.13)}.wa-status-dot.is-online{background:#16a34a;box-shadow:0 0 0 5px rgba(22,163,74,.13)}.wa-qr-card{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}.wa-qr-card h2{font-size:1.2rem;margin:4px 0}.wa-qr-card p{max-width:360px;margin:0;color:#667085}.wa-qr-card__image{width:210px;height:210px;object-fit:contain;background:#fff;border:1px solid #e5e7eb}.wa-connected-mark{display:grid;place-items:center;width:150px;height:150px;border:2px solid #16a34a;color:#166534;font-weight: 700;border-radius:50%;background:#f0fdf4}.wa-table-card{overflow:hidden}.wa-table-card__head{padding:16px 20px;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;gap:14px}.wa-table-card__head h2{font-size:1rem;margin:0}.wa-table-card__head span{font-size:.78rem;color:#667085}.wa-state{display:inline-flex;padding:4px 9px;border-radius:999px;background:#f3f4f6;font-size:.72rem;font-weight: 700;text-transform:uppercase}.wa-state--sent{background:#dcfce7;color:#166534}.wa-state--queued,.wa-state--sending,.wa-state--retry{background:#fff7d6;color:#854d0e}.wa-state--failed{background:#fee2e2;color:#991b1b}.wa-inbox-list{padding:4px 20px}.wa-inbox-list article{padding:14px 0;border-bottom:1px solid #edf0f4}.wa-inbox-list article:last-child{border:0}.wa-inbox-list article>div{display:flex;justify-content:space-between;gap:16px}.wa-inbox-list span{font-size:.75rem;color:#667085}.wa-inbox-list p{margin:5px 0 0;white-space:pre-wrap}

.system-map-page{margin:0;background:#f3f5f8;color:#1f2937;font-family:Inter,"Segoe UI",Arial,sans-serif}.system-map-topbar{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:64px;padding:0 clamp(16px,4vw,48px);background:#fff;border-bottom:1px solid #dfe4ea}.system-map-topbar img{height:38px;max-width:130px;object-fit:contain}.system-map-back,.system-map-print{color:#253044;font-size:.84rem;font-weight: 700;text-decoration:none}.system-map-print{justify-self:end;border:1px solid #cdd4de;background:#fff;padding:8px 13px;border-radius:4px;cursor:pointer}.system-map-shell{width:min(1280px,calc(100% - 36px));margin:0 auto;padding:48px 0 64px}.system-map-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:38px}.system-map-intro>div>span{color:#d45528;font-weight: 700;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.system-map-intro h1{font-size:clamp(2rem,5vw,4rem);line-height:1;margin:7px 0 12px;letter-spacing:0}.system-map-intro p{max-width:660px;margin:0;color:#637083;font-size:1.02rem}.system-map-legend{display:flex;gap:14px;flex-wrap:wrap}.system-map-legend span{display:flex;align-items:center;gap:6px;font-size:.76rem;font-weight:700}.system-map-legend i{width:9px;height:9px;border-radius:50%}.system-map-legend .is-client{background:#2097a5}.system-map-legend .is-team{background:#df6a35}.system-map-legend .is-system{background:#586679}.system-map-flow{display:grid;gap:0}.system-map-phase{display:flex;align-items:center;gap:10px;margin:25px 0 12px;color:#374151}.system-map-phase b{display:grid;place-items:center;width:32px;height:32px;border:1px solid #cfd6df;border-radius:50%;font-size:.7rem;background:#fff}.system-map-phase span{font-size:.78rem;font-weight: 700;text-transform:uppercase;letter-spacing:.08em}.system-map-row{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.system-map-row--four{grid-template-columns:repeat(4,minmax(0,1fr))}.system-map-row--six{grid-template-columns:repeat(6,minmax(0,1fr))}.system-map-row:not(:last-child)::after{content:"";position:absolute;left:50%;bottom:-25px;width:1px;height:25px;background:#bcc5d0}.system-node{position:relative;min-height:152px;padding:20px;background:#fff;border:1px solid #dfe4ea;border-top:4px solid #586679;border-radius:6px;box-shadow:0 5px 16px rgba(28,39,54,.055)}.system-node.is-client{border-top-color:#2097a5}.system-node.is-team{border-top-color:#df6a35}.system-node.is-system{border-top-color:#586679}.system-node em{font-style:normal;font-size:1.25rem;color:#788596}.system-node h2{font-size:1rem;margin:12px 0 6px;letter-spacing:0}.system-node p{margin:0;color:#687587;font-size:.82rem;line-height:1.45}.system-map-foundation{margin-top:38px;padding:26px;background:#202938;color:#fff;border-radius:6px}.system-map-foundation h2{margin:0 0 17px;font-size:1rem}.system-map-foundation div{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.system-map-foundation span{padding:11px 8px;border:1px solid #455166;background:#2b3546;text-align:center;font-size:.75rem}.system-map-note{text-align:center;color:#687587;font-size:.78rem;margin:18px auto 0}
@media(max-width:900px){.wa-status-grid{grid-template-columns:1fr}.system-map-row,.system-map-row--four,.system-map-row--six{grid-template-columns:repeat(2,minmax(0,1fr))}.system-map-foundation div{grid-template-columns:repeat(2,minmax(0,1fr))}.system-map-intro{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.wa-console__header{align-items:flex-start;flex-direction:column}.wa-qr-card{align-items:flex-start;flex-direction:column}.wa-qr-card__image{width:min(100%,280px);height:auto;aspect-ratio:1}.system-map-topbar{grid-template-columns:1fr auto;height:58px}.system-map-topbar img{display:none}.system-map-shell{width:min(100% - 24px,1280px);padding:30px 0}.system-map-row,.system-map-row--four,.system-map-row--six{grid-template-columns:1fr}.system-node{min-height:0}.system-map-row:not(:last-child)::after{display:none}.system-map-intro h1{font-size:2.15rem}.system-map-legend{gap:10px}.system-map-foundation div{grid-template-columns:1fr 1fr}}
@media print{.system-map-topbar{display:none}.system-map-page{background:#fff}.system-map-shell{width:100%;padding:0}.system-node{break-inside:avoid;box-shadow:none}.system-map-phase{break-after:avoid}.system-map-foundation{break-inside:avoid}}
.wa-qr-placeholder{display:grid;place-items:center;width:210px;min-height:150px;padding:18px;border:1px dashed #aeb8c5;background:#f8fafc;color:#667085;text-align:center;font-size:.82rem}

/* Detailed PizPan operating circuit */
.system-map-shell--wide{width:min(1460px,calc(100% - 36px))}.system-map-intro--detailed{margin-bottom:24px}.system-map-intro--detailed h1{font-size:3.4rem}.system-map-legend .is-owner{background:#df6a35}.system-map-legend .is-output{background:#6f9f55}.system-control-strip{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(520px,2fr);gap:14px 28px;padding:22px 24px;background:#202938;color:#fff;border-radius:6px}.system-control-strip__title{display:grid;align-content:start;gap:4px}.system-control-strip__title small,.system-deliverables small,.system-data-spine small{font-size:.68rem;font-weight: 700;letter-spacing:.08em;color:#ef9a68}.system-control-strip__title strong{font-size:1.05rem;line-height:1.25}.system-control-strip__items{display:flex;align-items:flex-start;flex-wrap:wrap;gap:7px}.system-control-strip__items span{padding:7px 9px;border:1px solid #4a5668;background:#2b3546;font-size:.7rem;font-weight: 700}.system-control-strip p{grid-column:1/-1;margin:0;padding-top:10px;border-top:1px solid #3b4658;color:#cfd6df;font-size:.75rem}.system-route-overview{display:flex;align-items:stretch;gap:7px;margin:22px 0 28px;overflow-x:auto;padding:2px 0 8px;scrollbar-width:thin}.system-route-overview article{flex:1 0 112px;display:flex;align-items:center;gap:8px;padding:10px;background:#fff;border:1px solid #dfe4ea;border-radius:5px}.system-route-overview article b{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#eef1f5;color:#586679;font-size:.65rem}.system-route-overview article span{font-size:.75rem;font-weight: 700}.system-route-overview>i{align-self:center;color:#98a2b3;font-style:normal}.system-stage-list{display:grid;gap:22px}.system-stage{overflow:hidden;background:#fff;border:1px solid #dce2e9;border-radius:6px;box-shadow:0 5px 18px rgba(28,39,54,.055);break-inside:avoid}.system-stage>header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:18px 20px;border-bottom:1px solid #e3e7ed;background:#fafbfc}.system-stage>header>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#202938;color:#fff;font-size:.72rem;font-weight: 700}.system-stage>header small{display:block;color:#d45b2a;font-size:.65rem;font-weight: 700;letter-spacing:.08em}.system-stage>header h2{margin:3px 0 0;font-size:1.12rem;letter-spacing:0}.system-stage__result{padding:7px 9px;border:1px solid #cfe0c4;background:#f2f8ee;color:#467134;font-size:.68rem;line-height:1.25}.system-stage__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.system-stage__grid>section{min-width:0;padding:18px;border-right:1px solid #e6e9ee;border-top:4px solid #788596}.system-stage__grid>section:last-child{border-right:0}.system-stage__grid>.is-owner{border-top-color:#df6a35}.system-stage__grid>.is-system,.system-stage__grid>.is-connection{border-top-color:#586679}.system-stage__grid>.is-client{border-top-color:#2097a5}.system-stage__grid>.is-output{border-top-color:#6f9f55}.system-stage__grid h3{margin:0 0 10px;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}.system-stage__grid ul{display:grid;gap:7px;margin:0;padding-left:17px}.system-stage__grid li{color:#566375;font-size:.76rem;line-height:1.42}.system-stage>footer{padding:11px 18px;background:#f7f8fa;border-top:1px solid #e4e8ed;color:#586679;font-size:.74rem}.production-formula{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1.15fr;align-items:stretch;gap:8px;padding:18px 20px;background:#eef2f5;border-bottom:1px solid #dae0e7}.production-formula>div{display:grid;gap:4px;align-content:center;min-height:82px;padding:12px;background:#fff;border:1px solid #d8dee6;border-radius:5px}.production-formula>i{align-self:center;color:#7b8797;font-style:normal;font-size:1.25rem;font-weight: 700}.production-formula small{font-size:.61rem;font-weight: 700;color:#7b8797}.production-formula strong{font-size:.86rem}.production-formula span{color:#687587;font-size:.68rem}.production-formula .is-result{border-color:#9fc58b;background:#f5faf2}.production-formula--stock{grid-template-columns:1fr auto 1fr auto 1.3fr;padding-top:0}.production-formula--stock>div{min-height:54px}.system-current-note{margin:0;padding:11px 18px;background:#fff7df;border-top:1px solid #eddcab;color:#725a1e;font-size:.72rem;line-height:1.45}.resource-tracks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #e4e8ed}.resource-tracks>div{display:grid;gap:4px;padding:13px 18px;border-right:1px solid #e4e8ed}.resource-tracks>div:last-child{border-right:0}.resource-tracks b{font-size:.74rem}.resource-tracks span{color:#687587;font-size:.7rem;line-height:1.4}.margin-formula{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;padding:16px 20px;background:#eef2f5;border-top:1px solid #dce2e9}.margin-formula span,.margin-formula strong{padding:8px 10px;background:#fff;border:1px solid #d8dee6;font-size:.72rem}.margin-formula strong{background:#f2f8ee;border-color:#b9d5aa;color:#467134}.margin-formula i{font-style:normal;color:#7b8797;font-weight: 700}.system-deliverables,.system-data-spine{margin-top:24px;padding:24px;background:#fff;border:1px solid #dce2e9;border-radius:6px}.system-deliverables header,.system-data-spine header{margin-bottom:16px}.system-deliverables h2,.system-data-spine h2{margin:3px 0 0;font-size:1.15rem}.system-deliverables>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.system-deliverables article{display:grid;gap:5px;padding:14px;border-left:4px solid #2097a5;background:#f5fafb}.system-deliverables article b{font-size:.78rem}.system-deliverables article span{color:#617081;font-size:.72rem;line-height:1.4}.system-data-spine{background:#202938;color:#fff}.system-data-spine>div{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}.system-data-spine>div span{padding:9px 11px;border:1px solid #4a5668;background:#2b3546;font-size:.7rem;font-weight: 700}.system-data-spine>div i{color:#93a0b2;font-style:normal}.system-data-spine p{margin:16px 0 0;padding-top:14px;border-top:1px solid #3b4658;color:#cfd6df;font-size:.72rem;text-align:center}
@media(max-width:1100px){.system-stage__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.system-stage__grid>section:nth-child(2){border-right:0}.system-stage__grid>section:nth-child(n+3){border-top-width:4px}.production-formula{grid-template-columns:1fr auto 1fr}.production-formula>i:nth-of-type(2){display:none}.production-formula>div:nth-of-type(3),.production-formula>div:nth-of-type(4){margin-top:0}.production-formula--stock{grid-template-columns:1fr auto 1fr auto 1.3fr}.system-control-strip{grid-template-columns:1fr}.system-control-strip p{grid-column:auto}}
@media(max-width:700px){.system-map-shell--wide{width:min(100% - 20px,1460px);padding-top:24px}.system-map-intro--detailed h1{font-size:2.2rem}.system-control-strip{padding:18px}.system-stage>header{grid-template-columns:auto minmax(0,1fr);padding:15px}.system-stage__result{grid-column:1/-1}.system-stage__grid{grid-template-columns:1fr}.system-stage__grid>section{border-right:0;border-bottom:1px solid #e6e9ee}.production-formula,.production-formula--stock{grid-template-columns:1fr}.production-formula>i{display:grid!important;place-items:center;height:18px}.production-formula>div{min-height:0}.resource-tracks{grid-template-columns:1fr}.resource-tracks>div{border-right:0;border-bottom:1px solid #e4e8ed}.system-deliverables>div{grid-template-columns:1fr}.system-route-overview{margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px}.system-map-legend{display:grid;grid-template-columns:1fr 1fr}.margin-formula{justify-content:flex-start}}
@media print{.system-control-strip,.system-stage,.system-deliverables,.system-data-spine{break-inside:avoid}.system-route-overview{overflow:visible}.system-stage__grid{grid-template-columns:repeat(4,minmax(0,1fr))}.system-map-intro--detailed h1{font-size:2.4rem}}

/* Public proposals: editorial event selection */
.pp-proposal-page {
  --proposal-ink: #202224;
  --proposal-muted: #62676c;
  --proposal-line: #dfe1df;
  --proposal-paper: #f7f6f2;
  --proposal-red: #c63a2c;
  background: var(--proposal-paper);
  color: var(--proposal-ink);
}

.pp-proposal-page .pp-intake-layout,
.pp-proposal-page .pp-intake-main {
  background: transparent;
}

.pp-proposal-page .pp-intake-main {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: 24px 0 64px;
  border-radius: 0;
  box-shadow: none;
}

.pp-proposal-page .pp-page-hero--proposal {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  align-items: start;
  gap: 46px;
  padding: 28px 0 34px;
  border-bottom: 1px solid var(--proposal-line);
}

.pp-proposal-page .pp-brand-block {
  position: static;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 58px;
  padding: 0;
  background: transparent;
  box-shadow: none;
}

.pp-proposal-page .pp-brand-block img {
  width: 136px;
  max-height: 64px;
  object-fit: contain;
}

.pp-proposal-page .pp-title-block {
  max-width: none;
  padding: 0;
}

.pp-proposal-eyebrow {
  display: block;
  margin: 2px 0 10px;
  color: var(--proposal-red);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
}

.pp-proposal-page .pp-title-block h1 {
  max-width: 800px;
  margin: 0;
  color: var(--proposal-ink);
  font-size: 2.85rem;
  line-height: 1.06;
  letter-spacing: 0;
}

.pp-proposal-page .pp-title-block > p {
  max-width: 740px;
  margin: 16px 0 0;
  color: var(--proposal-muted);
  font-size: 1rem;
  line-height: 1.7;
}

.pp-proposal-page .pp-title-block__secure {
  justify-self: end;
  width: fit-content;
  margin: 0 0 18px 24px;
  padding: 8px 10px;
  border: 1px solid var(--proposal-line);
  border-radius: 4px;
  background: #fff;
}

.pp-proposal-page .pp-trust-row {
  margin-top: 20px;
}

.pp-proposal-page .pp-trust-row span {
  min-height: 34px;
  border-radius: 4px;
  background: #fff;
}

.pp-proposal-page .pp-link-expiry {
  margin-top: 16px;
  border-radius: 4px;
}

.pp-proposal-page .pp-content-grid--proposal {
  display: block;
  padding-top: 30px;
}

.pp-proposal-page .pp-form-shell.pp-proposal-shell {
  display: grid;
  gap: 24px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.pp-proposal-page .pp-side-column {
  display: none;
}

.pp-proposal-page .pp-form-section {
  border-radius: 6px;
  box-shadow: none;
}

.pp-proposal-page .pp-proposal-brief {
  padding: 0;
  border: 0;
  background: transparent;
}

.pp-proposal-page .pp-proposal-brief .pp-form-section__header {
  margin-bottom: 14px;
}

.pp-proposal-page .pp-step-badge,
.pp-proposal-page .pp-section-icon {
  display: none;
}

.pp-proposal-page .pp-form-section__header h2 {
  margin: 0;
  font-size: 1rem;
  letter-spacing: 0;
}

.pp-proposal-page .pp-proposal-summary-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  border: 1px solid var(--proposal-line);
  border-radius: 6px;
  background: #fff;
}

.pp-proposal-page .pp-proposal-summary-item {
  min-width: 0;
  padding: 18px 20px;
  border: 0;
  border-right: 1px solid var(--proposal-line);
  border-radius: 0;
  background: transparent;
}

.pp-proposal-page .pp-proposal-summary-item:last-child {
  border-right: 0;
}

.pp-proposal-page .pp-proposal-summary-item strong {
  color: #777b7e;
  font-size: 0.68rem;
  letter-spacing: 0;
}

.pp-proposal-page .pp-proposal-summary-item span {
  overflow-wrap: anywhere;
  font-size: 0.9rem;
}

.pp-proposal-page .pp-proposal-journey {
  padding: 22px;
  border: 1px solid var(--proposal-line);
  background: #fff;
}

.pp-proposal-page .pp-commercial-flow {
  position: relative;
  gap: 0;
}

.pp-proposal-page .pp-commercial-flow::before {
  content: "";
  position: absolute;
  top: 16px;
  right: 8%;
  left: 8%;
  height: 1px;
  background: #d5d7d5;
}

.pp-proposal-page .pp-commercial-flow__step {
  min-height: 118px;
  padding: 0 12px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.pp-proposal-page .pp-commercial-flow__step.is-current {
  background: transparent;
  box-shadow: none;
}

.pp-proposal-page .pp-commercial-flow__step span {
  z-index: 1;
  width: 33px;
  height: 33px;
  border: 1px solid #cfd2d0;
  border-radius: 50%;
  background: #fff;
  color: #555a5e;
}

.pp-proposal-page .pp-commercial-flow__step strong {
  font-size: 0.86rem;
}

.pp-proposal-page .pp-commercial-flow__step small {
  font-size: 0.75rem;
}

.pp-proposal-page .pp-commercial-flow-note {
  margin-top: 18px;
  padding: 12px 14px;
  border: 0;
  border-left: 3px solid var(--proposal-red);
  border-radius: 0;
  background: #f7f3ef;
  font-size: 0.84rem;
}

.pp-proposal-page .pp-proposal-list-v2 {
  gap: 20px;
}

.pp-proposal-page .pp-proposal-card {
  display: grid;
  grid-template-columns: minmax(260px, 0.78fr) minmax(0, 1.4fr);
  gap: 0;
  overflow: hidden;
  padding: 0;
  border: 1px solid var(--proposal-line);
  background: #fff;
}

.pp-proposal-card__media {
  position: relative;
  min-height: 370px;
  overflow: hidden;
  background: #edece7;
}

.pp-proposal-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pp-proposal-card__media span {
  position: absolute;
  top: 14px;
  left: 14px;
  padding: 6px 8px;
  border-radius: 3px;
  background: rgba(32, 34, 36, 0.88);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
}

.pp-proposal-card__content {
  display: grid;
  align-content: center;
  gap: 22px;
  min-width: 0;
  padding: 32px;
}

.pp-proposal-page .pp-proposal-card__head h2 {
  margin: 8px 0;
  font-size: 1.7rem;
  letter-spacing: 0;
}

.pp-proposal-page .pp-proposal-tier {
  min-height: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--proposal-red);
  font-size: 0.7rem;
  letter-spacing: 0;
}

.pp-proposal-page .pp-proposal-price {
  min-width: 150px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  font-size: 1.35rem;
  text-align: right;
}

.pp-proposal-page .pp-proposal-points {
  gap: 0;
  border-top: 1px solid var(--proposal-line);
  border-bottom: 1px solid var(--proposal-line);
}

.pp-proposal-page .pp-proposal-point {
  padding: 16px 18px 16px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.pp-proposal-page .pp-proposal-point + .pp-proposal-point {
  padding-left: 18px;
  border-left: 1px solid var(--proposal-line);
}

.pp-proposal-page .pp-proposal-point strong {
  font-size: 0.78rem;
}

.pp-proposal-page .pp-proposal-point span {
  color: var(--proposal-muted);
  font-size: 0.86rem;
  line-height: 1.55;
}

.pp-proposal-page .pp-proposal-actions .pp-submit-btn {
  width: auto;
  min-width: 180px;
  min-height: 48px;
  border-radius: 4px;
  background: var(--proposal-ink);
  box-shadow: none;
}

.pp-proposal-page .pp-proposal-actions .pp-submit-btn:not(:disabled):hover {
  background: var(--proposal-red);
}

.pp-proposal-page .pp-proposal-actions .pp-submit-btn:disabled {
  background: #e5e6e3;
  color: #616568;
}

@media (max-width: 820px) {
  .pp-proposal-page .pp-intake-main {
    width: min(100% - 24px, 1180px);
    padding-top: 10px;
  }

  .pp-proposal-page .pp-page-hero--proposal {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 16px 0 26px;
  }

  .pp-proposal-page .pp-brand-block {
    min-height: 42px;
  }

  .pp-proposal-page .pp-brand-block img {
    width: 110px;
    max-height: 46px;
  }

  .pp-proposal-page .pp-title-block h1 {
    font-size: 2.05rem;
  }

  .pp-proposal-page .pp-title-block__secure {
    justify-self: start;
    width: min(100%, 340px);
    margin: 0 0 16px;
  }

  .pp-proposal-page .pp-proposal-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pp-proposal-page .pp-proposal-summary-item:nth-child(2) {
    border-right: 0;
  }

  .pp-proposal-page .pp-proposal-summary-item:nth-child(-n + 2) {
    border-bottom: 1px solid var(--proposal-line);
  }

  .pp-proposal-page .pp-commercial-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 6px;
  }

  .pp-proposal-page .pp-commercial-flow::before {
    display: none;
  }

  .pp-proposal-page .pp-commercial-flow__step {
    min-height: 0;
    padding: 0;
  }

  .pp-proposal-page .pp-proposal-card {
    grid-template-columns: 1fr;
  }

  .pp-proposal-card__media {
    min-height: 0;
    aspect-ratio: 16 / 10;
  }

  .pp-proposal-card__content {
    padding: 24px 20px;
  }
}

@media (max-width: 480px) {
  .pp-proposal-page .pp-trust-row {
    display: grid;
    grid-template-columns: 1fr;
  }

  .pp-proposal-page .pp-proposal-journey {
    padding: 18px 16px;
  }

  .pp-proposal-page .pp-proposal-card__head {
    display: grid;
  }

  .pp-proposal-page .pp-proposal-price {
    min-width: 0;
    text-align: left;
  }

  .pp-proposal-page .pp-proposal-points {
    grid-template-columns: 1fr;
  }

  .pp-proposal-page .pp-proposal-point + .pp-proposal-point {
    padding-left: 0;
    border-top: 1px solid var(--proposal-line);
    border-left: 0;
  }

  .pp-proposal-page .pp-proposal-actions .pp-submit-btn {
    width: 100%;
  }
}

/* Proposals reference: componentes extraidos de propuestas_3_planes.png */
.pp-ref-page {
  --pp-ref-black: #0c0e0e;
  --pp-ref-paper: #fbf8f3;
  --pp-ref-gold: #e7a92f;
  --pp-ref-gold-light: #f4c45c;
  --pp-ref-red: #a80e12;
  --pp-ref-ink: #151515;
  --pp-ref-muted: #5e574f;
  --pp-ref-border: #ded4c7;
  margin: 0;
  padding: 6px;
  background: #ecebea;
  color: var(--pp-ref-ink);
  font-family: Manrope, Arial, sans-serif;
}

.pp-ref-page *,
.pp-ref-page *::before,
.pp-ref-page *::after {
  box-sizing: border-box;
}

.pp-ref-shell {
  width: min(1180px, 100%);
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid #d8d4cd;
  border-radius: 8px;
  background: var(--pp-ref-paper);
  box-shadow: 0 5px 18px rgba(16, 13, 8, 0.12);
}

/* Componente 1: hero */
.pp-ref-hero {
  position: relative;
  min-height: 356px;
  padding: 24px 32px 58px;
  border-bottom: 2px solid var(--pp-ref-gold);
  border-radius: 0 0 50% 50% / 0 0 8% 8%;
  background:
    linear-gradient(rgba(0, 0, 0, 0.34), rgba(0, 0, 0, 0.68)),
    url("../img/proposals/proposal-hero.webp") center / cover no-repeat;
  color: #fff;
}

.pp-ref-hero__top {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

.pp-ref-logo {
  width: 105px;
  height: 78px;
  object-fit: contain;
}

.pp-ref-secure {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  min-width: 230px;
  padding: 12px 15px;
  border: 1px solid var(--pp-ref-gold);
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.46);
  color: #fff;
}

.pp-ref-secure svg {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
}

.pp-ref-secure div {
  display: grid;
  gap: 3px;
}

.pp-ref-secure strong {
  font-size: 0.84rem;
}

.pp-ref-secure span {
  color: #eee;
  font-size: 0.67rem;
  line-height: 1.35;
}

.pp-ref-hero__content {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  width: min(940px, 100%);
  margin: -46px auto 0;
  text-align: center;
}

.pp-ref-kicker {
  color: var(--pp-ref-gold-light);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
}

.pp-ref-hero h1 {
  margin: 5px 0 4px;
  color: #fff;
  font-family: Georgia, Cambria, "Times New Roman", serif;
  font-size: 3.75rem;
  font-weight: 700;
  line-height: 0.93;
  letter-spacing: 0;
}

.pp-ref-hero h1 em {
  display: block;
  color: var(--pp-ref-gold-light);
  font-weight: 700;
}

.pp-ref-hero__content > p {
  margin: 10px 0 0;
  color: #fff;
  font-size: 0.79rem;
  line-height: 1.55;
}

.pp-ref-trust {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.pp-ref-trust > span {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-width: 0;
  padding: 0 12px;
  border-right: 1px solid rgba(255, 255, 255, 0.16);
  color: #fff;
  font-size: 0.78rem;
  font-weight: 700;
}

.pp-ref-trust > span:last-child {
  border-right: 0;
}

.pp-ref-trust svg {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  color: var(--pp-ref-gold);
}

.pp-ref-expiry {
  position: absolute;
  bottom: -79px;
  left: 50%;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 8px 18px;
  border: 1px solid #bc7916;
  border-radius: 6px;
  background: #f4c45c;
  color: #2b1905;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.28);
  transform: translateX(-50%);
  white-space: nowrap;
}

.pp-ref-expiry svg {
  width: 20px;
  height: 20px;
}

.pp-ref-expiry strong,
.pp-ref-expiry span,
.pp-ref-expiry b {
  font-size: 0.78rem;
  font-weight: 700;
}

/* Componente 2: aviso de revisión */
.pp-ref-content {
  padding: 84px 26px 32px;
}

.pp-ref-review {
  display: flex;
  align-items: center;
  gap: 12px;
  width: min(930px, calc(100% - 60px));
  min-height: 54px;
  margin: 0 auto 22px;
  padding: 10px 18px;
  border-radius: 8px;
  background: #f2e9dc;
}

.pp-ref-review svg {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  padding: 6px;
  border-radius: 50%;
  background: #ead4a9;
  color: #c98b17;
}

.pp-ref-review p {
  margin: 0;
  color: #27231f;
  font-size: 0.75rem;
  line-height: 1.5;
}

/* Componente 3: encabezado comparativo */
.pp-ref-heading {
  display: grid;
  justify-items: center;
  margin: 0 0 18px;
  text-align: center;
}

.pp-ref-heading > span {
  color: #7d3f1f;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
}

.pp-ref-heading h2 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  width: min(900px, 100%);
  margin: 2px 0 0;
  color: var(--pp-ref-ink);
  font-family: Georgia, Cambria, "Times New Roman", serif;
  font-size: 1.9rem;
  line-height: 1.15;
  letter-spacing: 0;
}

.pp-ref-heading i {
  position: relative;
  width: 110px;
  height: 1px;
  background: var(--pp-ref-gold);
}

.pp-ref-heading i:first-child::after,
.pp-ref-heading i:last-child::before {
  content: "✦";
  position: absolute;
  top: 50%;
  color: #c98b17;
  font-size: 0.65rem;
  transform: translateY(-50%);
}

.pp-ref-heading i:first-child::after { right: -12px; }
.pp-ref-heading i:last-child::before { left: -12px; }

.pp-ref-slice-note {
  max-width: 760px;
  margin: 12px 0 0;
  color: #4a4036;
  font-size: 0.78rem;
  line-height: 1.55;
}

/* Componente 4: planes */
.pp-ref-plans {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 16px;
}

.pp-ref-plans.is-two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: min(880px, 100%);
  margin: 0 auto;
}

.pp-ref-plans.is-single {
  grid-template-columns: minmax(0, 430px);
  justify-content: center;
}

.pp-ref-plan {
  display: grid;
  grid-template-rows: auto auto 1fr auto auto;
  min-width: 0;
  overflow: hidden;
  padding: 14px 14px 16px;
  border: 1px solid var(--pp-ref-border);
  border-radius: 8px;
  background: rgba(255, 253, 249, 0.72);
  box-shadow: 0 2px 8px rgba(70, 45, 18, 0.05);
}

.pp-ref-plan.is-recommended {
  border-color: #c98b17;
  box-shadow: 0 0 0 2px rgba(201, 139, 23, 0.16), 0 8px 22px rgba(70, 45, 18, 0.12);
}

.pp-ref-plan__media {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 300px;
  isolation: isolate;
}

.pp-ref-plan__media::before,
.pp-ref-plan__media::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  border-radius: 50%;
  pointer-events: none;
  transform: translate(-50%, -50%);
}

.pp-ref-plan__media::before {
  z-index: -2;
  width: min(286px, 88%);
  aspect-ratio: 1;
  padding: 6px;
  background: conic-gradient(from 20deg, #5b3512, #e6b75c, #fff0bd, #9f661d, #efd27d, #5b3512);
  box-shadow: 0 12px 26px rgba(48, 29, 8, 0.25), 0 0 0 1px rgba(91, 53, 18, 0.35);
}

.pp-ref-plan__media::after {
  z-index: -1;
  width: min(270px, calc(88% - 16px));
  aspect-ratio: 1;
  border: 2px solid rgba(255, 246, 213, 0.92);
  box-shadow: inset 0 0 18px rgba(26, 18, 8, 0.2), 0 0 20px rgba(216, 157, 55, 0.28);
}

.pp-ref-plan__media img {
  display: block;
  z-index: 1;
  width: min(270px, calc(88% - 16px));
  aspect-ratio: 1;
  border: 0;
  border-radius: 50%;
  object-fit: cover;
  transition: filter 220ms ease, transform 220ms ease;
}

.pp-ref-plan.is-basic-plan .pp-ref-plan__media img {
  width: min(286px, 92%);
  clip-path: circle(48% at center);
  object-fit: contain;
  object-position: center;
}

.pp-ref-plan.is-premium-plan .pp-ref-plan__media img {
  width: min(286px, calc(92% - 18px));
  clip-path: circle(48% at center);
  object-fit: contain;
  object-position: center;
  padding: 0;
  background: transparent;
}

.pp-ref-plan.is-basic-plan .pp-ref-plan__media::before,
.pp-ref-plan.is-basic-plan .pp-ref-plan__media::after,
.pp-ref-plan.is-premium-plan .pp-ref-plan__media::before,
.pp-ref-plan.is-premium-plan .pp-ref-plan__media::after {
  display: none;
}

.pp-ref-plan.is-premium-plan .pp-ref-plan__media::before {
  width: min(306px, 92%);
}

.pp-ref-plan.is-premium-plan .pp-ref-plan__media::after {
  width: min(290px, calc(92% - 16px));
}

.pp-ref-plan:hover .pp-ref-plan__media img {
  filter: saturate(1.06) contrast(1.03);
  transform: scale(1.018);
}

@media (prefers-reduced-motion: reduce) {
  .pp-ref-plan__media img {
    transition: none;
  }
}

.pp-ref-plan__media > span {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 3;
  padding: 6px 8px;
  border-radius: 3px;
  background: #0d0f0f;
  color: #fff;
  font-size: 0.59rem;
  font-weight: 700;
  text-transform: uppercase;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.22);
}

.pp-ref-plan__recommended {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 3;
  max-width: 52%;
  padding: 6px 8px;
  border-radius: 3px;
  background: #e1a84f;
  color: #211404;
  font-size: 0.58rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  text-transform: uppercase;
}

.pp-ref-plan__copy {
  min-width: 0;
}

.pp-ref-plan__tier {
  color: var(--pp-ref-red);
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
}

.pp-ref-plan h3 {
  margin: 5px 0 7px;
  color: #101010;
  font-family: Georgia, Cambria, "Times New Roman", serif;
  font-size: 1.55rem;
  line-height: 1.02;
  letter-spacing: 0;
}

.pp-ref-plan__copy > p {
  min-height: 66px;
  margin: 0;
  padding-bottom: 13px;
  border-bottom: 1px solid #e7dfd6;
  color: #393632;
  font-size: 0.72rem;
  line-height: 1.55;
}

.pp-ref-plan__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 13px 0 10px;
}

.pp-ref-plan__facts > div {
  min-width: 0;
  padding-right: 10px;
}

.pp-ref-plan__facts > div + div {
  padding-right: 0;
  padding-left: 10px;
  border-left: 1px solid #e4dcd2;
}

.pp-ref-plan__facts strong {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #1e1b18;
  font-size: 0.67rem;
}

.pp-ref-plan__facts svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  color: #de9517;
}

.pp-ref-plan__facts span {
  display: block;
  margin-top: 7px;
  color: #4a4641;
  font-size: 0.61rem;
  line-height: 1.62;
}

.pp-ref-plan__price {
  margin: 4px 0 12px;
  color: var(--pp-ref-red);
  font-family: Georgia, Cambria, "Times New Roman", serif;
  font-size: 1.65rem;
  font-weight: 700;
  text-align: center;
}

.pp-ref-plan__action button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  width: 100%;
  min-height: 48px;
  padding: 10px 16px;
  border: 1px solid #8e080c;
  border-radius: 8px;
  background: var(--pp-ref-red);
  color: #fff;
  font-family: Georgia, Cambria, "Times New Roman", serif;
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  cursor: pointer;
}

.pp-ref-plan__action button span {
  font-family: Arial, sans-serif;
  font-size: 1.7rem;
  font-weight: 400;
  line-height: 0;
}

.pp-ref-plan__action button:hover:not(:disabled),
.pp-ref-plan__action button:focus-visible {
  background: #87070b;
}

.pp-ref-plan__action button:focus-visible {
  outline: 3px solid var(--pp-ref-gold-light);
  outline-offset: 2px;
}

.pp-ref-plan__action button:disabled {
  opacity: 0.76;
  cursor: not-allowed;
}

.pp-ref-plan__action button.is-accepted {
  border-color: #28653a;
  background: #347b48;
}

.pp-ref-empty {
  padding: 64px 24px;
  text-align: center;
}

.pp-ref-empty h2 {
  font-family: Georgia, Cambria, "Times New Roman", serif;
  letter-spacing: 0;
}

/* Componente 5: banda de garantías */
.pp-ref-footer {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 24px 36px;
  background: var(--pp-ref-black);
  color: #fff;
}

.pp-ref-footer > div {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
  padding: 0 24px;
  border-right: 1px solid rgba(255, 255, 255, 0.13);
}

.pp-ref-footer > div:first-child { padding-left: 0; }
.pp-ref-footer > div:last-child { padding-right: 0; border-right: 0; }

.pp-ref-footer svg {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  color: var(--pp-ref-gold);
}

.pp-ref-footer p {
  display: grid;
  gap: 4px;
  margin: 0;
}

.pp-ref-footer strong {
  font-size: 0.77rem;
}

.pp-ref-footer span {
  color: #d6d6d3;
  font-size: 0.61rem;
  line-height: 1.4;
}

@media (max-width: 860px) {
  .pp-ref-hero {
    min-height: 330px;
    padding-right: 20px;
    padding-left: 20px;
  }

  .pp-ref-logo { width: 88px; height: 66px; }
  .pp-ref-secure { min-width: 205px; padding: 10px 12px; }
  .pp-ref-hero__content { margin-top: -32px; }
  .pp-ref-hero h1 { font-size: 3.15rem; }
  .pp-ref-content { padding-right: 18px; padding-left: 18px; }
  .pp-ref-plan { padding: 12px; }
  .pp-ref-plan__media { min-height: 245px; }
  .pp-ref-plan__media::before { width: min(232px, 88%); }
  .pp-ref-plan__media::after,
  .pp-ref-plan__media img { width: min(216px, calc(88% - 16px)); }
  .pp-ref-plan.is-premium-plan .pp-ref-plan__media::before { width: min(246px, 92%); }
  .pp-ref-plan.is-premium-plan .pp-ref-plan__media::after { width: min(230px, calc(92% - 16px)); }
  .pp-ref-plan.is-premium-plan .pp-ref-plan__media img { width: min(226px, calc(92% - 20px)); padding: 0; }
  .pp-ref-plan h3 { font-size: 1.27rem; }
  .pp-ref-plan__copy > p { min-height: 78px; font-size: 0.66rem; }
  .pp-ref-plan__facts span { font-size: 0.61rem; }
  .pp-ref-footer { padding-right: 22px; padding-left: 22px; }
  .pp-ref-footer > div { padding: 0 14px; }
}

@media (max-width: 680px) {
  .pp-ref-page { padding: 0; background: var(--pp-ref-paper); }
  .pp-ref-shell { border: 0; border-radius: 0; box-shadow: none; }
  .pp-ref-hero { min-height: 440px; padding: 18px 16px 66px; border-radius: 0 0 50% 50% / 0 0 4% 4%; }
  .pp-ref-hero__top { align-items: center; }
  .pp-ref-logo { width: 72px; height: 56px; }
  .pp-ref-secure { min-width: 0; padding: 8px 9px; }
  .pp-ref-secure svg { width: 20px; height: 20px; flex-basis: 20px; }
  .pp-ref-secure strong { font-size: 0.72rem; }
  .pp-ref-secure span { font-size: 0.56rem; }
  .pp-ref-hero__content { margin-top: 24px; }
  .pp-ref-kicker { font-size: 0.68rem; }
  .pp-ref-hero h1 { margin-top: 10px; font-size: 2.6rem; line-height: 0.98; }
  .pp-ref-hero__content > p { margin-top: 16px; font-size: 0.71rem; }
  .pp-ref-hero__content > p br { display: none; }
  .pp-ref-trust { grid-template-columns: 1fr; gap: 0; width: min(300px, 100%); padding-top: 10px; }
  .pp-ref-trust > span { justify-content: flex-start; min-height: 35px; padding: 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.13); font-size: 0.72rem; }
  .pp-ref-trust > span:last-child { border-bottom: 0; }
  .pp-ref-expiry { bottom: -74px; width: calc(100% - 34px); gap: 5px; padding: 8px 10px; white-space: normal; }
  .pp-ref-expiry strong, .pp-ref-expiry span, .pp-ref-expiry b { font-size: 0.68rem; }
  .pp-ref-content { padding: 82px 12px 24px; }
  .pp-ref-review { width: 100%; margin-bottom: 24px; padding: 12px; }
  .pp-ref-review p { font-size: 0.7rem; }
  .pp-ref-review p br { display: none; }
  .pp-ref-heading h2 { gap: 8px; font-size: 1.65rem; }
  .pp-ref-heading i { width: 34px; }
  .pp-ref-plans { grid-template-columns: 1fr; gap: 14px; }
  .pp-ref-plans.is-two,
  .pp-ref-plans.is-single { grid-template-columns: 1fr; width: 100%; }
  .pp-ref-plan { width: min(100%, 420px); margin: 0 auto; padding: 16px; }
  .pp-ref-plan__media { min-height: 310px; }
  .pp-ref-plan__media::before { width: min(288px, 88%); }
  .pp-ref-plan__media::after,
  .pp-ref-plan__media img { width: min(272px, calc(88% - 16px)); }
  .pp-ref-plan.is-premium-plan .pp-ref-plan__media { min-height: 328px; }
  .pp-ref-plan.is-premium-plan .pp-ref-plan__media::before { width: min(310px, 92%); }
  .pp-ref-plan.is-premium-plan .pp-ref-plan__media::after { width: min(294px, calc(92% - 16px)); }
  .pp-ref-plan.is-premium-plan .pp-ref-plan__media img { width: min(290px, calc(92% - 20px)); padding: 0; }
  .pp-ref-plan h3 { font-size: 1.75rem; }
  .pp-ref-plan__copy > p { min-height: 0; font-size: 0.75rem; }
  .pp-ref-plan__facts strong { font-size: 0.73rem; }
  .pp-ref-plan__facts span { font-size: 0.65rem; }
  .pp-ref-footer { grid-template-columns: 1fr; gap: 0; padding: 16px 20px; }
  .pp-ref-footer > div, .pp-ref-footer > div:first-child, .pp-ref-footer > div:last-child { min-height: 68px; padding: 10px 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.13); }
  .pp-ref-footer > div:last-child { border-bottom: 0; }
}

/* Propuesta Premium unica: componentes extraidos de propuesta_plan_premium.png */
.pp-premium-page {
  --pp-premium-black: #090a09;
  --pp-premium-panel: rgba(13, 14, 13, 0.92);
  --pp-premium-gold: #e1a84f;
  --pp-premium-gold-dark: #d09238;
  --pp-premium-border: #a66b14;
  --pp-premium-white: #fafafa;
  --pp-premium-soft: #d9d8d2;
  min-height: 100vh;
  margin: 0;
  padding: 4px 18px 8px;
  background: #fafafa;
  color: var(--pp-premium-white);
  font-family: Manrope, Arial, sans-serif;
}

.pp-premium-page *,
.pp-premium-page *::before,
.pp-premium-page *::after {
  box-sizing: border-box;
}

.pp-premium-shell {
  position: relative;
  isolation: isolate;
  width: min(740px, 100%);
  min-height: 1012px;
  margin: 0 auto;
  overflow: hidden;
  padding: 22px 40px 18px;
  border: 1px solid #252522;
  border-radius: 12px;
  background:
    radial-gradient(circle at 13% 37%, rgba(225, 168, 79, 0.88) 0 1px, transparent 2px),
    radial-gradient(circle at 94% 24%, rgba(225, 168, 79, 0.72) 0 1px, transparent 2px),
    radial-gradient(circle at 4% 57%, rgba(208, 146, 56, 0.54) 0 1px, transparent 2px),
    repeating-linear-gradient(149deg, transparent 0 15px, rgba(208, 146, 56, 0.07) 16px, transparent 17px 29px),
    var(--pp-premium-black);
  box-shadow: 0 5px 13px rgba(0, 0, 0, 0.34);
}

.pp-premium-shell::before,
.pp-premium-shell::after {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
}

.pp-premium-shell::before {
  inset: 275px -80px auto;
  height: 340px;
  background: radial-gradient(ellipse at 23% 58%, rgba(209, 127, 22, 0.2), transparent 43%);
}

.pp-premium-shell::after {
  right: -170px;
  bottom: 75px;
  width: 530px;
  height: 530px;
  border: 1px solid rgba(208, 146, 56, 0.08);
  border-radius: 50%;
  box-shadow: 0 0 0 28px rgba(208, 146, 56, 0.025), 0 0 0 56px rgba(208, 146, 56, 0.02);
}

.pp-premium-header {
  position: relative;
  display: flow-root;
  min-height: 336px;
}

.pp-premium-logo {
  position: absolute;
  top: -4px;
  left: -42px;
  width: 125px;
  height: 88px;
  object-fit: contain;
}

.pp-premium-secure {
  position: absolute;
  top: 0;
  right: -32px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 180px;
  min-height: 75px;
  padding: 13px 14px;
  border: 1px solid var(--pp-premium-border);
  border-radius: 8px;
  background: rgba(8, 9, 8, 0.82);
}

.pp-premium-secure svg {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
}

.pp-premium-secure div {
  display: grid;
  gap: 3px;
}

.pp-premium-secure strong {
  font-size: 0.78rem;
  line-height: 1.25;
}

.pp-premium-secure span {
  color: var(--pp-premium-soft);
  font-size: 0.59rem;
  line-height: 1.5;
}

.pp-premium-title {
  display: grid;
  justify-items: center;
  width: min(620px, 100%);
  margin: 48px auto 0;
  text-align: center;
}

.pp-premium-title__badge {
  min-width: 200px;
  padding: 6px 14px;
  border-radius: 4px;
  background: var(--pp-premium-gold);
  color: #0b0b09;
  font-size: 0.77rem;
  font-weight: 700;
  text-transform: uppercase;
}

.pp-premium-title > p {
  margin: 15px 0 -3px;
  font-family: Georgia, Cambria, "Times New Roman", serif;
  font-size: 2.55rem;
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
}

.pp-premium-title h1 {
  margin: 0;
  color: var(--pp-premium-gold);
  font-family: Georgia, Cambria, "Times New Roman", serif;
  font-size: 4.7rem;
  font-weight: 700;
  line-height: 0.95;
  text-transform: uppercase;
}

.pp-premium-title__ribbon {
  position: relative;
  width: min(490px, calc(100% - 34px));
  margin-top: 10px;
  padding: 8px 20px;
  background: var(--pp-premium-gold);
  color: #161109;
  font-size: 0.85rem;
  font-weight: 700;
  line-height: 1.15;
  text-transform: uppercase;
  clip-path: polygon(0 0, 100% 0, 96% 50%, 100% 100%, 0 100%, 4% 50%);
}

.pp-premium-title__copy {
  width: min(470px, 100%);
  margin-top: 12px;
  color: #efefec;
  font-size: 0.75rem;
  line-height: 1.55;
}

.pp-premium-share-note {
  display: block;
  max-width: 620px;
  margin: 12px auto 0;
  color: var(--pp-premium-soft);
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
}

.pp-premium-offer {
  display: grid;
  grid-template-columns: minmax(0, 385px) minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  margin-right: -4px;
  margin-left: -13px;
}

.pp-premium-visual,
.pp-premium-details {
  min-width: 0;
}

.pp-premium-photo {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 1;
  border: 0;
  border-radius: 50%;
  background: #0b0c0b;
  box-shadow: 0 0 10px rgba(255, 194, 92, 0.38), 0 0 24px rgba(225, 168, 79, 0.24);
}

.pp-premium-photo::after {
  display: none;
}

.pp-premium-photo img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  clip-path: circle(48% at center);
  object-fit: contain;
  padding: 0;
  background: transparent;
}

.pp-premium-price {
  display: grid;
  justify-items: center;
  min-height: 130px;
  margin: 15px 12px 0;
  padding: 14px 18px 12px;
  border: 1px solid var(--pp-premium-gold);
  border-radius: 10px;
  background: rgba(8, 9, 8, 0.88);
  text-align: center;
}

.pp-premium-price span,
.pp-premium-price b {
  color: var(--pp-premium-gold);
  font-size: 0.73rem;
  font-weight: 700;
  text-transform: uppercase;
}

.pp-premium-price strong {
  margin: 1px 0;
  color: #efbc62;
  font-family: Georgia, Cambria, "Times New Roman", serif;
  font-size: 3.3rem;
  line-height: 1;
  white-space: nowrap;
}

.pp-premium-price b {
  max-width: 100%;
  overflow-wrap: anywhere;
}

.pp-premium-details {
  overflow: hidden;
  border: 1px solid rgba(166, 107, 20, 0.75);
  border-radius: 14px;
  background: var(--pp-premium-panel);
}

.pp-premium-includes,
.pp-premium-focus {
  padding: 20px 20px 18px;
}

.pp-premium-includes {
  min-height: 248px;
  border-bottom: 1px solid rgba(166, 107, 20, 0.75);
}

.pp-premium-details h2 {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 14px;
  color: var(--pp-premium-gold);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

.pp-premium-details h2 svg {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
}

.pp-premium-includes ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pp-premium-includes li {
  position: relative;
  padding-left: 23px;
  color: #f0efeb;
  font-size: 0.69rem;
  line-height: 1.35;
}

.pp-premium-includes li::before {
  content: "✓";
  position: absolute;
  top: -2px;
  left: 0;
  color: var(--pp-premium-gold);
  font-size: 1.08rem;
  font-weight: 700;
}

.pp-premium-focus {
  min-height: 218px;
}

.pp-premium-focus > p {
  margin: 0;
  color: #efefec;
  font-size: 0.67rem;
  line-height: 1.55;
}

.pp-premium-signature {
  display: grid;
  justify-items: center;
  gap: 4px;
  margin-top: 18px;
  padding: 12px 8px;
  border: 1px solid rgba(225, 168, 79, 0.62);
  border-radius: 8px;
  box-shadow: 0 0 12px rgba(225, 168, 79, 0.24), inset 0 0 11px rgba(225, 168, 79, 0.08);
  text-align: center;
}

.pp-premium-signature b {
  color: var(--pp-premium-gold);
  font-size: 0.57rem;
  text-transform: uppercase;
}

.pp-premium-signature span {
  color: #efbc62;
  font-family: Georgia, Cambria, "Times New Roman", serif;
  font-size: 1rem;
  font-style: italic;
}

.pp-premium-action {
  margin: 20px 6px 0;
}

.pp-premium-action button {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  width: 100%;
  min-height: 58px;
  padding: 8px 28px;
  border: 1px solid #f0b64d;
  border-radius: 10px;
  background: var(--pp-premium-gold);
  color: #110e08;
  font-family: Georgia, Cambria, "Times New Roman", serif;
  font-size: 1.55rem;
  font-weight: 700;
  text-transform: uppercase;
  box-shadow: 0 5px 13px rgba(208, 146, 56, 0.32);
  cursor: pointer;
}

.pp-premium-action button::before {
  content: "";
}

.pp-premium-action button span {
  margin-left: 28px;
  font-family: Arial, sans-serif;
  font-size: 2.25rem;
  font-weight: 400;
  line-height: 0;
}

.pp-premium-action button:hover:not(:disabled),
.pp-premium-action button:focus-visible {
  background: #efb95c;
}

.pp-premium-action button:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px;
}

.pp-premium-action button:disabled {
  opacity: 1;
  cursor: not-allowed;
}

.pp-premium-action button.is-accepted {
  display: flex;
  justify-content: center;
  border-color: #347b48;
  background: #347b48;
  color: #fff;
}

.pp-premium-private {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 30px;
  color: var(--pp-premium-gold);
  font-size: 0.65rem;
}

.pp-premium-private svg {
  width: 17px;
  height: 17px;
}

@media (max-width: 680px) {
  .pp-premium-page {
    padding: 0;
    background: var(--pp-premium-black);
  }

  .pp-premium-shell {
    min-height: 100vh;
    padding: 16px 16px 18px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .pp-premium-header {
    min-height: 370px;
  }

  .pp-premium-logo {
    top: 0;
    left: -9px;
    width: 92px;
    height: 70px;
  }

  .pp-premium-secure {
    right: 0;
    width: 164px;
    min-height: 68px;
    padding: 10px 11px;
  }

  .pp-premium-title {
    margin-top: 82px;
  }

  .pp-premium-title__badge {
    min-width: 184px;
    font-size: 0.69rem;
  }

  .pp-premium-title > p {
    margin-top: 18px;
    font-size: 2rem;
  }

  .pp-premium-title h1 {
    font-size: 2.65rem;
  }

  .pp-premium-title__ribbon {
    width: 100%;
    padding-right: 24px;
    padding-left: 24px;
    font-size: 0.72rem;
  }

  .pp-premium-title__copy {
    font-size: 0.71rem;
  }

  .pp-premium-offer {
    grid-template-columns: 1fr;
    gap: 18px;
    margin-right: 0;
    margin-left: 0;
  }

  .pp-premium-photo {
    width: min(350px, calc(100vw - 44px));
    margin: 0 auto;
  }

  .pp-premium-price {
    width: min(350px, 100%);
    margin-right: auto;
    margin-left: auto;
  }

  .pp-premium-details {
    width: min(350px, 100%);
    margin: 0 auto;
  }

  .pp-premium-includes,
  .pp-premium-focus {
    min-height: 0;
    padding: 20px;
  }

  .pp-premium-includes li,
  .pp-premium-focus > p {
    font-size: 0.74rem;
  }

  .pp-premium-action {
    width: min(350px, 100%);
    margin: 18px auto 0;
  }

  .pp-premium-action button {
    min-height: 56px;
    font-size: 1.25rem;
  }

  .pp-premium-private {
    padding-top: 5px;
    text-align: center;
  }
}

@media (max-width: 360px) {
  .pp-premium-title h1 {
    font-size: 2.12rem;
  }
}

.wa-state--confirming {
  background: #fff7d6;
  color: #854d0e;
}

/* Centro de notificaciones: adaptación local de la jerarquía visual Velzon. */
.velzon-notification-menu {
  width: min(380px, calc(100vw - 1.5rem));
  padding: 0;
  border: 0;
  border-radius: 0.35rem;
  background: #fff;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
  overflow: hidden;
}

.header .velzon-notification-toggle {
  width: 2.5rem;
  height: 2.5rem;
  border: 0 !important;
  border-radius: 0.25rem;
  background: transparent !important;
  color: #495057 !important;
}

.header .velzon-notification-toggle:hover,
.header .velzon-notification-toggle:focus-visible {
  background: #f3f6f9 !important;
  color: #405189 !important;
  box-shadow: none !important;
}

.velzon-notification-toggle svg {
  width: 1.35rem;
  height: 1.35rem;
}

.velzon-notification-menu .app-notification-list {
  display: flex;
  flex-direction: column;
  max-height: min(460px, calc(100dvh - 5.5rem));
  overflow: hidden;
  background: #fff;
}

.velzon-notification-head {
  flex: 0 0 auto;
  background: #405189;
  color: #fff;
}

.velzon-notification-head__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.95rem 1rem 0.65rem;
}

.velzon-notification-menu .app-notification-menu-title {
  min-height: 0;
  background: transparent;
  color: #fff;
  font-size: 0.9rem;
  font-weight: 600;
}

.velzon-notification-count {
  color: rgba(255, 255, 255, 0.76);
  font-size: 0.72rem;
  white-space: nowrap;
}

.velzon-notification-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 0 0.55rem;
}

.velzon-notification-tab {
  min-height: 2.6rem;
  padding: 0.35rem 0.25rem 0.45rem;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.71rem;
  font-weight: 600;
  text-align: center;
}

.velzon-notification-tab span {
  display: inline-flex;
  min-width: 1.15rem;
  min-height: 1.15rem;
  align-items: center;
  justify-content: center;
  margin-left: 0.12rem;
  padding: 0 0.26rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.15);
  font-size: 0.64rem;
}

.velzon-notification-tab:hover,
.velzon-notification-tab:focus-visible,
.velzon-notification-tab.is-active {
  border-bottom-color: #fff;
  color: #fff;
  outline: 0;
}

.velzon-notification-panels {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.velzon-notification-panel[hidden] {
  display: none;
}

.velzon-notification-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.82rem 1rem;
  border: 0 !important;
  border-bottom: 1px solid #f3f6f9 !important;
  background: #fff;
  color: #495057;
  text-decoration: none;
  white-space: normal;
}

.velzon-notification-item.is-unread {
  background: #f7f9fc;
}

.velzon-notification-item:hover,
.velzon-notification-item:focus-visible {
  background: #f3f6f9;
  color: #495057;
  outline: 0;
}

.velzon-notification-icon {
  display: inline-flex;
  width: 2.3rem;
  height: 2.3rem;
  flex: 0 0 2.3rem;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}

.velzon-notification-icon svg {
  width: 1.15rem;
  height: 1.15rem;
}

.velzon-notification-icon.is-all,
.velzon-notification-icon.is-info {
  background: #e0f3ff;
  color: #299cdb;
}

.velzon-notification-icon.is-messages {
  background: #e7f6ec;
  color: #0ab39c;
}

.velzon-notification-icon.is-alerts {
  background: #fff3e4;
  color: #f7b84b;
}

.velzon-notification-item .app-notification-copy {
  display: block;
  min-width: 0;
  flex: 1 1 auto;
}

.velzon-notification-item .app-notification-topline {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.6rem;
}

.velzon-notification-item .app-notification-title {
  display: block;
  min-width: 0;
  color: #212529;
  font-size: 0.77rem;
  font-weight: 600;
  line-height: 1.35;
  white-space: normal;
}

.velzon-notification-item .app-notification-meta {
  flex: 0 0 auto;
  color: #878a99;
  font-size: 0.64rem;
  line-height: 1.35;
}

.velzon-notification-item .app-notification-body {
  display: -webkit-box;
  margin-top: 0.16rem;
  color: #878a99;
  font-size: 0.72rem;
  line-height: 1.42;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.velzon-notification-menu .app-notification-empty {
  padding: 2.1rem 1rem;
  color: #878a99;
  font-size: 0.78rem;
}

.velzon-notification-foot {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  min-height: 3.2rem;
  padding: 0.45rem 1rem;
  border-top: 1px solid #f3f6f9;
  background: #fff;
}

.velzon-notification-foot form {
  margin: 0;
}

.velzon-notification-menu .app-notification-read-all,
.velzon-notification-menu .app-notification-view-all {
  min-height: auto;
  padding: 0.35rem 0;
  border: 0;
  background: transparent;
  color: #405189;
  font-size: 0.72rem;
  font-weight: 600;
  text-decoration: none;
}

.velzon-notification-menu .app-notification-read-all:hover,
.velzon-notification-menu .app-notification-read-all:focus-visible,
.velzon-notification-menu .app-notification-view-all:hover,
.velzon-notification-menu .app-notification-view-all:focus-visible {
  color: #299cdb;
  text-decoration: none;
}

.velzon-notification-menu .app-notification-read-all:disabled {
  color: #b8bbc2;
}

.velzon-notification-menu .app-notification-view-icon {
  width: 0.9rem;
  height: 0.9rem;
  color: currentColor;
}

@media (max-width: 575.98px) {
  .velzon-notification-menu {
    width: calc(100vw - 1rem);
    max-height: calc(100dvh - 5.7rem);
  }

  .velzon-notification-menu .app-notification-list {
    height: min(515px, calc(100dvh - 5.7rem));
    max-height: none;
  }

  .velzon-notification-item {
    padding: 0.8rem 0.85rem;
  }
}

/* Réplica fiel de la bandeja Velzon (tema default / topbar light). */
.velzon-notification-menu {
  width: min(320px, calc(100vw - 1rem));
  border-radius: 0.25rem;
  box-shadow: 0 5px 12px rgba(3, 10, 26, 0.12);
  font-family: "Poppins", sans-serif;
}

.velzon-notification-menu,
.velzon-notification-menu button,
.velzon-notification-menu a,
.velzon-notification-menu small,
.velzon-notification-menu strong,
.velzon-notification-dropdown .app-notification-badge,
.header .velzon-notification-toggle {
  font-family: "Poppins", sans-serif;
}

.header .velzon-notification-toggle {
  width: 42px;
  height: 42px;
  min-height: 42px;
  padding: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0 !important;
  border-radius: 50% !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #878a99 !important;
  transition: all 0.5s ease;
}

.header .velzon-notification-toggle:hover,
.header .velzon-notification-toggle:focus-visible,
.header .velzon-notification-toggle[aria-expanded="true"] {
  background: rgba(53, 119, 241, 0.12) !important;
  color: #495057 !important;
}

.velzon-notification-toggle svg {
  width: 22px;
  height: 22px;
}

.velzon-notification-dropdown .app-notification-badge {
  top: 4px;
  right: -9px;
  min-width: 1rem;
  height: 1rem;
  padding: 0 0.22rem;
  border: 0;
  background: #f06548;
  box-shadow: none;
  font-family: inherit;
  font-size: 0.625rem;
  font-weight: 500;
  transform: translate(-50%, -50%);
}

/* El bloque de acciones del encabezado siempre permanece en una sola fila. */
.header .app-header-row,
.header .app-header-right,
.header .app-notification-dropdown,
.header .app-profile-menu,
.header .app-profile-menu > summary {
  flex-wrap: nowrap !important;
}

.header .app-header-right {
  display: flex !important;
  align-items: center !important;
  white-space: nowrap;
}

.header .app-notification-dropdown,
.header .app-profile-menu {
  flex: 0 0 auto;
}

.header .app-profile-copy {
  display: grid !important;
  flex: 0 0 auto;
}

@media (max-width: 575.98px) {
  .header .app-header-right {
    gap: 0.1rem !important;
  }

  .header .app-profile-copy {
    display: none !important;
  }
}

.velzon-notification-menu .app-notification-list {
  max-height: none;
}

.velzon-notification-head {
  background: #405189;
}

.velzon-notification-head__top {
  min-height: 4.06rem;
  padding: 1rem;
}

.velzon-notification-menu .app-notification-menu-title {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.25;
}

.velzon-notification-head__actions {
  display: flex;
  align-items: center;
  gap: 0.38rem;
}

.velzon-notification-head__actions form {
  margin: 0;
}

.velzon-notification-read-all {
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.76);
  font-family: inherit;
  font-size: 0.6875rem;
  font-weight: 500;
  white-space: nowrap;
}

.velzon-notification-read-all:hover,
.velzon-notification-read-all:focus-visible {
  color: #fff;
  outline: 0;
}

.velzon-notification-read-all:disabled {
  cursor: default;
  opacity: 0.58;
}

.velzon-notification-count {
  display: inline-flex;
  align-items: center;
  min-height: 1.65rem;
  padding: 0.2rem 0.46rem;
  border-radius: 0.25rem;
  background: #f3f6f9;
  color: #212529;
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1;
}

.velzon-notification-tabs {
  display: flex;
  gap: 0;
  padding: 0.5rem 0.5rem 0;
}

.velzon-notification-tab {
  min-height: 2.36rem;
  flex: 1 1 0;
  padding: 0.55rem 0.55rem 0.5rem;
  border: 0;
  border-radius: 0.25rem 0.25rem 0 0;
  color: rgba(255, 255, 255, 0.6);
  font-family: inherit;
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.25;
}

.velzon-notification-tab span {
  display: inline;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  font: inherit;
}

.velzon-notification-tab:hover,
.velzon-notification-tab:focus-visible {
  border-bottom-color: transparent;
  color: #fff;
}

.velzon-notification-tab.is-active {
  border-bottom-color: transparent;
  background: #fff;
  color: #405189;
}

.velzon-notification-panels {
  padding: 0.5rem 0.5rem 0.5rem 0.5rem;
  max-height: 316px;
  overflow-y: auto;
}

.velzon-notification-panel {
  padding-right: 0.5rem;
}

.velzon-notification-item {
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border-bottom: 0 !important;
  border-radius: 0.25rem;
  color: #212529;
}

.velzon-notification-item.is-unread,
.velzon-notification-item:hover,
.velzon-notification-item:focus-visible {
  background: transparent;
  color: #212529;
}

.velzon-notification-item:hover,
.velzon-notification-item:focus-visible {
  background: #f3f6f9;
}

.velzon-notification-icon {
  width: 2rem;
  height: 2rem;
  flex-basis: 2rem;
}

.velzon-notification-icon svg {
  width: 1rem;
  height: 1rem;
}

.velzon-notification-item .app-notification-copy {
  padding-top: 0.03rem;
}

.velzon-notification-item .app-notification-title {
  color: #212529;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.45;
}

.velzon-notification-item .app-notification-body {
  display: block;
  margin-top: 0.15rem;
  color: #878a99;
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.35;
  -webkit-line-clamp: unset;
}

.velzon-notification-item .app-notification-meta {
  display: flex;
  align-items: center;
  gap: 0.2rem;
  margin-top: 0.34rem;
  color: #878a99;
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.25;
  text-transform: uppercase;
}

.velzon-notification-item .app-notification-meta svg {
  width: 0.75rem;
  height: 0.75rem;
}

.velzon-notification-menu .app-notification-empty {
  padding: 2.5rem 1rem;
  font-size: 0.8125rem;
}

.velzon-notification-foot {
  justify-content: center;
  min-height: 0;
  padding: 0.65rem 0.5rem 1rem;
  border-top: 0;
}

.velzon-notification-menu .app-notification-view-all {
  display: inline-flex;
  min-height: 2.35rem;
  align-items: center;
  justify-content: center;
  gap: 0.32rem;
  padding: 0.45rem 0.75rem;
  border-radius: 0.25rem;
  background: rgba(10, 179, 156, 0.1);
  color: #0ab39c;
  font-size: 0.8125rem;
  font-weight: 400;
}

.velzon-notification-menu .app-notification-view-all:hover,
.velzon-notification-menu .app-notification-view-all:focus-visible {
  background: #0ab39c;
  color: #fff;
}

.velzon-notification-menu .app-notification-view-icon {
  width: 0.95rem;
  height: 0.95rem;
}

@media (max-width: 575.98px) {
  .velzon-notification-menu {
    width: calc(100vw - 1rem);
  }

  .velzon-notification-menu .app-notification-list {
    height: auto;
    max-height: calc(100dvh - 5.7rem);
  }

  .velzon-notification-panels {
    max-height: min(316px, calc(100dvh - 12.7rem));
  }
}

@media (max-width: 360px) {
  .header .velzon-notification-toggle {
    width: 36px;
    height: 36px;
    min-height: 36px;
  }
}

/* Sidebar: réplica visual del layout vertical Velzon default/dark. */
@font-face {
  font-family: "HK Grotesk";
  src: url("../fonts/hkgrotesk/hkgrotesk-light.woff") format("woff");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "HK Grotesk";
  src: url("../fonts/hkgrotesk/hkgrotesk-regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "HK Grotesk";
  src: url("../fonts/hkgrotesk/hkgrotesk-medium.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "HK Grotesk";
  src: url("../fonts/hkgrotesk/hkgrotesk-semibold.woff") format("woff");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "HK Grotesk";
  src: url("../fonts/hkgrotesk/hkgrotesk-bold.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@media (min-width: 992px) {
  :root {
    --app-sidebar-width: 250px;
    --app-sidebar-collapsed-width: 70px;
    --app-sidebar-collapsed-gap: 0px;
  }
}

.sidebar {
  background: #405189 !important;
  border-right-color: #405189 !important;
  box-shadow: 0 2px 4px rgba(15, 34, 58, 0.12) !important;
}

.sidebar .sidebar-header {
  height: 70px;
  min-height: 70px;
  padding: 0 1.3rem;
  background: #405189;
  border-bottom: 0 !important;
}

.sidebar-brand,
.sidebar-brand .d-flex {
  min-width: 0;
}

.app-brand-logo {
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.app-brand-name {
  color: #fff;
  font-family: "Poppins", sans-serif;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0;
}

.sidebar-brand .small {
  display: none;
}

.sidebar .sidebar-nav {
  padding: 0.75rem 0 1.5rem;
  font-family: "HK Grotesk", sans-serif;
}

.sidebar .nav-title {
  margin: 1.25rem 0 0.5rem;
  padding: 0 1.5rem;
  color: #838fb9;
  font-family: "Poppins", sans-serif;
  font-size: 11px;
  font-weight: 600 !important;
  line-height: 1.5;
  letter-spacing: 0.035em;
}

.sidebar .nav-link,
.sidebar .app-sidebar-group-toggle {
  position: relative;
  min-height: 0;
  margin: 0;
  padding: 0.625rem 1.5rem;
  border-radius: 0 !important;
  background: transparent;
  color: #abb9e8;
  font-family: "HK Grotesk", sans-serif;
  font-size: 0.9375rem !important;
  font-weight: 400 !important;
  line-height: 1.5;
  gap: 0;
}

.sidebar .nav-link:hover,
.sidebar .nav-link:focus-visible,
.sidebar .app-sidebar-group-toggle:hover,
.sidebar .app-sidebar-group-toggle:focus-visible {
  background: transparent;
  color: #fff;
  outline: 0;
}

.sidebar .nav-link.active,
.sidebar .nav-link[aria-current="page"] {
  background: transparent;
  color: #fff;
  box-shadow: none;
}

.sidebar .app-sidebar-icon,
.sidebar .app-sidebar-icon svg {
  width: 18px;
  height: 18px;
}

.sidebar .app-sidebar-icon {
  flex: 0 0 1.75rem;
  margin-right: 0;
  color: currentColor;
}

.app-sidebar-group {
  gap: 0;
}

.app-sidebar-group-title,
.app-sidebar-label {
  font-weight: 400 !important;
}

.app-sidebar-group-chevron {
  position: absolute;
  right: 18px;
  width: 1.05rem;
  height: 1.05rem;
  color: currentColor;
}

.app-sidebar-group-chevron svg {
  width: 1.05rem;
  height: 1.05rem;
}

.app-sidebar-subnav {
  gap: 0;
  margin: 0;
  padding: 0 0 0 1.75rem;
}

.app-sidebar-group.is-open .app-sidebar-subnav {
  display: block;
}

.app-sidebar-subnav .nav-link {
  min-height: 0;
  padding: 0.55rem 1.5rem !important;
  color: #abb9e8;
  font-family: "Poppins", sans-serif;
  font-size: 0.8125rem !important;
}

.app-sidebar-subnav .nav-link::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 2px;
  width: 6px;
  height: 1.5px;
  background: currentColor;
  opacity: 0.5;
}

.app-sidebar-subnav .nav-link .app-sidebar-icon {
  display: none;
}

.app-sidebar-subnav .nav-link:hover::before,
.app-sidebar-subnav .nav-link.active::before,
.app-sidebar-subnav .nav-link[aria-current="page"]::before {
  opacity: 1;
}

.app-sidebar-minimize-toggle {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 0.25rem;
  background: transparent;
  color: #abb9e8;
  box-shadow: none;
}

.app-sidebar-minimize-toggle:hover,
.app-sidebar-minimize-toggle:focus-visible {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  box-shadow: none;
}

body.desktop-sidebar-collapsed .sidebar .nav-link {
  width: 70px;
  height: auto;
  min-height: 42px;
  border-radius: 0 !important;
}

@media (max-width: 991.98px) {
  .sidebar,
  .sidebar .sidebar-header {
    background: #405189 !important;
  }

  .sidebar {
    width: min(250px, 82vw) !important;
  }

  .mobile-sidebar-backdrop {
    left: min(250px, 82vw);
  }
}

/* Dashboard corporate palette preview: black, white and PizPan orange. */
body.app-corporate-preview {
  --corporate-black: #151515;
  --corporate-black-soft: #202020;
  --corporate-orange: #f59e0b;
  --corporate-orange-dark: #c77700;
  --corporate-orange-soft: #fff4d6;
  --corporate-white: #ffffff;
  background: #f7f7f5;
}

body.app-corporate-preview .sidebar,
body.app-corporate-preview .sidebar .sidebar-header {
  background: var(--corporate-black) !important;
  border-color: rgba(245, 158, 11, 0.22) !important;
}

body.app-corporate-preview .sidebar {
  box-shadow: 8px 0 24px rgba(0, 0, 0, 0.16) !important;
}

body.app-corporate-preview .sidebar .nav-title {
  color: rgba(245, 158, 11, 0.78) !important;
}

body.app-corporate-preview .sidebar .nav-link,
body.app-corporate-preview .sidebar .app-sidebar-group-toggle {
  color: rgba(255, 255, 255, 0.72) !important;
}

body.app-corporate-preview .sidebar .nav-link:hover,
body.app-corporate-preview .sidebar .app-sidebar-group-toggle:hover,
body.app-corporate-preview .sidebar .nav-link:focus-visible,
body.app-corporate-preview .sidebar .app-sidebar-group-toggle:focus-visible {
  background: var(--corporate-black-soft) !important;
  color: var(--corporate-white) !important;
}

body.app-corporate-preview .sidebar .nav-link.active {
  background: var(--corporate-orange) !important;
  color: var(--corporate-black) !important;
  box-shadow: inset 3px 0 0 #fff !important;
}

body.app-corporate-preview .sidebar .nav-link.active .app-sidebar-icon,
body.app-corporate-preview .sidebar .nav-link.active .app-sidebar-label {
  color: var(--corporate-black) !important;
}

body.app-corporate-preview .sidebar .app-sidebar-icon,
body.app-corporate-preview .sidebar .app-sidebar-group-chevron {
  color: var(--corporate-orange) !important;
}

body.app-corporate-preview .app-header-title {
  color: var(--corporate-black);
}

body.app-corporate-preview .dashboard-kpi-card--adminlte {
  background: var(--corporate-white) !important;
  border: 1px solid #e5e5e2 !important;
  border-top: 3px solid var(--corporate-orange) !important;
  color: var(--corporate-black) !important;
  box-shadow: 0 6px 18px rgba(21, 21, 21, 0.08) !important;
}

body.app-corporate-preview .dashboard-kpi-card--adminlte h3,
body.app-corporate-preview .dashboard-kpi-card--adminlte p,
body.app-corporate-preview .dashboard-kpi-card--adminlte span {
  color: var(--corporate-black) !important;
}

body.app-corporate-preview .dashboard-kpi-card--adminlte .dashboard-small-box__icon {
  color: rgba(245, 158, 11, 0.7) !important;
}

body.app-corporate-preview .dashboard-section-icon,
body.app-corporate-preview .dashboard-card-footer a,
body.app-corporate-preview .dashboard-events-table .app-primary-row-link {
  color: var(--corporate-orange-dark) !important;
}

body.app-corporate-preview .dashboard-section-action {
  border-color: var(--corporate-orange) !important;
  color: var(--corporate-orange-dark) !important;
}

body.app-corporate-preview .dashboard-section-action:hover,
body.app-corporate-preview .dashboard-section-action:focus-visible {
  background: var(--corporate-orange-soft) !important;
  border-color: var(--corporate-orange-dark) !important;
  color: var(--corporate-black) !important;
}

body.app-corporate-preview .dashboard-reference .dashboard-events-card,
body.app-corporate-preview .dashboard-reference .dashboard-stock-card,
body.app-corporate-preview .dashboard-reference .dashboard-logistics-card,
body.app-corporate-preview .dashboard-reference .dashboard-equipment-card,
body.app-corporate-preview .dashboard-reference .dashboard-reviews-card {
  border-color: #e5e5e2 !important;
  box-shadow: 0 6px 18px rgba(21, 21, 21, 0.07) !important;
}

body.app-corporate-preview .dashboard-reference .app-status-badge--en-preparacion {
  background: var(--corporate-orange-soft) !important;
  color: var(--corporate-orange-dark) !important;
  border-color: rgba(245, 158, 11, 0.4) !important;
}

body.app-corporate-preview .dashboard-stock-card__icon {
  background: var(--corporate-orange-soft) !important;
  color: var(--corporate-orange-dark) !important;
}

body.app-corporate-preview .dashboard-stock-card.is-clear .dashboard-stock-card__status,
body.app-corporate-preview .dashboard-stock-card.has-alerts .dashboard-stock-card__status {
  background: var(--corporate-orange-soft) !important;
  color: var(--corporate-orange-dark) !important;
}

body.app-corporate-preview .dashboard-section-heading__icon {
  color: var(--corporate-orange-dark) !important;
}

body.app-corporate-preview .dashboard-logistics-item:hover,
body.app-corporate-preview .dashboard-logistics-item:focus-visible {
  border-color: rgba(245, 158, 11, 0.55) !important;
  box-shadow: 0 8px 20px rgba(245, 158, 11, 0.12) !important;
}

body.app-corporate-preview .dashboard-logistics-alert--primary,
body.app-corporate-preview .dashboard-logistics-alert--info,
body.app-corporate-preview .dashboard-logistics-alert--warning {
  border-color: rgba(245, 158, 11, 0.35) !important;
  background: var(--corporate-orange-soft) !important;
}

body.app-corporate-preview .dashboard-logistics-alert--primary .dashboard-logistics-alert__title,
body.app-corporate-preview .dashboard-logistics-alert--info .dashboard-logistics-alert__title,
body.app-corporate-preview .dashboard-logistics-alert--warning .dashboard-logistics-alert__title {
  color: var(--corporate-orange-dark) !important;
}

body.app-corporate-preview .dashboard-margin-chart {
  background: conic-gradient(var(--corporate-orange) 0 calc(100% - var(--margin-share)), #272727 calc(100% - var(--margin-share)) 100%) !important;
}

body.app-corporate-preview .dashboard-margin-chart.is-pending {
  background: conic-gradient(#d9d9d5 0 74%, #f0f0ed 74% 100%) !important;
}

body.app-corporate-preview .dashboard-margin-chart.has-margin {
  box-shadow: inset 7px 0 0 rgba(245, 158, 11, 0.9) !important;
}

body.app-corporate-preview .dashboard-margin-dot--cost,
body.app-corporate-preview .dashboard-margin-dot--margin {
  background: var(--corporate-orange) !important;
}

body.app-corporate-preview .dashboard-reviews-card__visual {
  background: var(--corporate-black) !important;
}

body.app-corporate-preview .dashboard-review-button {
  background: var(--corporate-orange) !important;
  color: var(--corporate-black) !important;
}

body.app-corporate-preview .dashboard-review-button:hover,
body.app-corporate-preview .dashboard-review-button:focus-visible {
  background: var(--corporate-orange-dark) !important;
  color: var(--corporate-white) !important;
}

body.app-corporate-preview .dashboard-review-heart {
  background: var(--corporate-orange-soft) !important;
  color: var(--corporate-orange-dark) !important;
}

/* Corporate shell applied across the authenticated application. */
body.app-corporate-preview {
  --corporate-black: #151515;
  --corporate-black-soft: #202020;
  --corporate-orange: #f59e0b;
  --corporate-orange-dark: #c77700;
  --corporate-orange-soft: #fff4d6;
  --corporate-white: #ffffff;
  background: #f7f7f5;
}

body.app-corporate-preview .app-shell,
body.app-corporate-preview .header,
body.app-corporate-preview .header .container-fluid {
  background: #fff !important;
}

body.app-corporate-preview .header .container-fluid {
  border-bottom-color: #e5e5e2 !important;
}

body.app-corporate-preview .app-header-title,
body.app-corporate-preview .app-page-shell h1,
body.app-corporate-preview .app-page-shell h2,
body.app-corporate-preview .app-page-shell h3,
body.app-corporate-preview .app-page-shell h4,
body.app-corporate-preview .app-page-shell h5 {
  color: var(--corporate-black);
}

body.app-corporate-preview a:not(.btn):not(.nav-link):not(.app-notification-item) {
  color: var(--corporate-orange-dark);
}

body.app-corporate-preview a:not(.btn):not(.nav-link):not(.app-notification-item):hover,
body.app-corporate-preview a:not(.btn):not(.nav-link):not(.app-notification-item):focus-visible {
  color: var(--corporate-black);
}

/* Velzon-style custom buttons are links, so keep their blue action text white. */
body.app-corporate-preview .cooladmin-m-btn--primary,
body.app-corporate-preview .cooladmin-m-btn--primary:hover,
body.app-corporate-preview .cooladmin-m-btn--primary:focus-visible,
body.app-corporate-preview .cooladmin-m-btn--primary:active {
  color: #fff !important;
}

body.app-corporate-preview .cooladmin-m-btn--primary .velzon-icon {
  color: #fff !important;
}

.cooladmin-m-btn .velzon-icon {
  display: block;
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
}

body.app-corporate-preview .btn-primary,
body.app-corporate-preview .btn-success,
body.app-corporate-preview .dashboard-review-button {
  border-color: var(--corporate-orange) !important;
  background: var(--corporate-orange) !important;
  color: var(--corporate-black) !important;
}

body.app-corporate-preview .btn-primary:hover,
body.app-corporate-preview .btn-primary:focus-visible,
body.app-corporate-preview .btn-success:hover,
body.app-corporate-preview .btn-success:focus-visible,
body.app-corporate-preview .dashboard-review-button:hover,
body.app-corporate-preview .dashboard-review-button:focus-visible {
  border-color: var(--corporate-orange-dark) !important;
  background: var(--corporate-orange-dark) !important;
  color: var(--corporate-white) !important;
}

body.app-corporate-preview .btn-outline-primary,
body.app-corporate-preview .btn-outline-success {
  border-color: var(--corporate-orange) !important;
  color: var(--corporate-orange-dark) !important;
}

body.app-corporate-preview .btn-outline-primary:hover,
body.app-corporate-preview .btn-outline-primary:focus-visible,
body.app-corporate-preview .btn-outline-success:hover,
body.app-corporate-preview .btn-outline-success:focus-visible {
  border-color: var(--corporate-orange) !important;
  background: var(--corporate-orange-soft) !important;
  color: var(--corporate-black) !important;
}

body.app-corporate-preview .form-control:focus,
body.app-corporate-preview .form-select:focus,
body.app-corporate-preview .form-check-input:focus {
  border-color: var(--corporate-orange) !important;
  box-shadow: 0 0 0 0.2rem rgba(245, 158, 11, 0.2) !important;
}

body.app-corporate-preview .form-check-input:checked {
  border-color: var(--corporate-orange) !important;
  background-color: var(--corporate-orange) !important;
}

/* Velzon-style notification centre with PizPan identity. */
body.app-corporate-preview .header .velzon-notification-toggle:hover,
body.app-corporate-preview .header .velzon-notification-toggle:focus-visible,
body.app-corporate-preview .header .velzon-notification-toggle[aria-expanded="true"] {
  background: var(--corporate-orange-soft) !important;
  color: var(--corporate-orange-dark) !important;
}

body.app-corporate-preview .velzon-notification-dropdown .app-notification-badge {
  border-color: #fff !important;
  background: var(--corporate-orange) !important;
  color: var(--corporate-black) !important;
}

body.app-corporate-preview .velzon-notification-menu {
  border-color: #e5e5e2 !important;
  box-shadow: 0 14px 36px rgba(21, 21, 21, 0.16) !important;
}

body.app-corporate-preview .velzon-notification-head {
  background: var(--corporate-black) !important;
}

body.app-corporate-preview .velzon-notification-menu .app-notification-menu-title,
body.app-corporate-preview .velzon-notification-menu .velzon-notification-count {
  color: #fff !important;
}

body.app-corporate-preview .velzon-notification-read-all {
  color: var(--corporate-orange) !important;
}

body.app-corporate-preview .velzon-notification-read-all:hover,
body.app-corporate-preview .velzon-notification-read-all:focus-visible {
  color: #fff !important;
}

body.app-corporate-preview .velzon-notification-tab {
  color: rgba(255, 255, 255, 0.72) !important;
}

body.app-corporate-preview .velzon-notification-tab:hover,
body.app-corporate-preview .velzon-notification-tab:focus-visible,
body.app-corporate-preview .velzon-notification-tab.is-active {
  background: var(--corporate-orange) !important;
  color: var(--corporate-black) !important;
}

body.app-corporate-preview .velzon-notification-item.is-unread,
body.app-corporate-preview .velzon-notification-item:hover,
body.app-corporate-preview .velzon-notification-item:focus-visible {
  background: var(--corporate-orange-soft) !important;
}

body.app-corporate-preview .velzon-notification-icon.is-all,
body.app-corporate-preview .velzon-notification-icon.is-info,
body.app-corporate-preview .velzon-notification-icon.is-messages,
body.app-corporate-preview .velzon-notification-icon.is-alerts {
  background: var(--corporate-orange-soft) !important;
  color: var(--corporate-orange-dark) !important;
}

body.app-corporate-preview .velzon-notification-menu .app-notification-view-all {
  background: var(--corporate-orange-soft) !important;
  color: var(--corporate-orange-dark) !important;
}

body.app-corporate-preview .velzon-notification-menu .app-notification-view-all:hover,
body.app-corporate-preview .velzon-notification-menu .app-notification-view-all:focus-visible {
  background: var(--corporate-orange) !important;
  color: var(--corporate-black) !important;
}

/* All operational tables share the Velzon/List.js surface and remain scroll-safe on small screens. */
body.app-corporate-preview .app-page-shell .app-table-responsive,
body.app-corporate-preview .app-page-shell .table-wrapper,
body.app-corporate-preview .app-page-shell .app-volt-table-card,
body.app-corporate-preview .app-page-shell .app-mantis-table-card {
  border-color: #e5e5e2 !important;
  border-radius: 0.375rem !important;
  box-shadow: 0 6px 18px rgba(21, 21, 21, 0.06) !important;
  background: #fff !important;
}

body.app-corporate-preview .app-page-shell .app-table-responsive,
body.app-corporate-preview .app-page-shell .table-wrapper {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}

body.app-corporate-preview .app-page-shell .app-table-responsive > .table thead,
body.app-corporate-preview .app-page-shell .app-volt-table thead,
body.app-corporate-preview .app-page-shell .app-mantis-table thead {
  background: #fafaf8 !important;
  border-bottom: 2px solid #e5e5e2 !important;
}

body.app-corporate-preview .app-page-shell .app-table-responsive > .table thead th,
body.app-corporate-preview .app-page-shell .app-volt-table thead th,
body.app-corporate-preview .app-page-shell .app-mantis-table thead th {
  color: #383838 !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em;
  padding-top: 0.9rem !important;
  padding-bottom: 0.9rem !important;
}

body.app-corporate-preview .app-page-shell .app-table-responsive > .table tbody tr:hover,
body.app-corporate-preview .app-page-shell .app-volt-table tbody tr:hover,
body.app-corporate-preview .app-page-shell .app-mantis-table tbody tr:hover {
  background: var(--corporate-orange-soft) !important;
}

body.app-corporate-preview .app-page-shell .app-table-responsive > .table tbody tr:hover > *,
body.app-corporate-preview .app-page-shell .app-volt-table tbody tr:hover > *,
body.app-corporate-preview .app-page-shell .app-mantis-table tbody tr:hover > * {
  background: transparent !important;
}

body.app-corporate-preview .app-page-shell .app-table-responsive > .table a,
body.app-corporate-preview .app-page-shell .app-volt-table a,
body.app-corporate-preview .app-page-shell .app-mantis-table a {
  color: var(--corporate-orange-dark) !important;
}

body.app-corporate-preview .app-page-shell .app-table-responsive > .table a:hover,
body.app-corporate-preview .app-page-shell .app-volt-table a:hover,
body.app-corporate-preview .app-page-shell .app-mantis-table a:hover {
  color: var(--corporate-black) !important;
}

/* Dashboard event table: faithful Table Head treatment from Velzon Basic Tables. */
body.app-corporate-preview .dashboard-reference .dashboard-events-table thead th {
  background: #f3f6f9 !important;
  border: 1px solid #e9ebec !important;
  color: #000 !important;
  font-family: "Poppins", sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: 19.5px !important;
  padding: 12px 9.6px !important;
  text-transform: none !important;
  white-space: nowrap;
}

body.app-corporate-preview .dashboard-reference .dashboard-events-table tbody td {
  border: 1px solid #e9ebec !important;
  color: #212529 !important;
  font-family: "Poppins", sans-serif !important;
  font-size: 13px !important;
  font-weight: 400;
  line-height: 19.5px !important;
  padding: 12px 9.6px !important;
}

body.app-corporate-preview .dashboard-reference .dashboard-events-table tbody tr:hover,
body.app-corporate-preview .dashboard-reference .dashboard-events-table tbody tr:hover > * {
  background: #fff !important;
}

body.app-corporate-preview .dashboard-card-footer,
body.app-corporate-preview .dashboard-card-footer a,
body.app-corporate-preview .dashboard-card-footer span {
  color: var(--corporate-orange-dark) !important;
}

@media (max-width: 991.98px) {
  body.app-corporate-preview .app-page-shell {
    padding-right: 0.75rem !important;
    padding-left: 0.75rem !important;
  }

  body.app-corporate-preview .app-page-shell .app-table-responsive,
  body.app-corporate-preview .app-page-shell .table-wrapper {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.app-corporate-preview .app-page-shell .app-table-responsive > .table,
  body.app-corporate-preview .app-page-shell .table-wrapper > .table {
    min-width: 640px;
  }
}

@media (max-width: 575.98px) {
  body.app-corporate-preview .header .container-fluid {
    padding-right: 0.75rem !important;
    padding-left: 0.75rem !important;
  }

  body.app-corporate-preview .app-header-row {
    gap: 0.55rem !important;
  }

  body.app-corporate-preview .app-page-shell .card-header,
  body.app-corporate-preview .app-page-shell .card-body {
    padding-right: 0.75rem;
    padding-left: 0.75rem;
  }

  body.app-corporate-preview .app-page-shell .app-table-responsive > .table thead th,
  body.app-corporate-preview .app-page-shell .app-volt-table thead th,
  body.app-corporate-preview .app-page-shell .app-mantis-table thead th {
    padding-top: 0.8rem !important;
    padding-bottom: 0.8rem !important;
  }
}

/* PizPan brand lockup: keep the production mark prominent in the expanded sidebar. */
@media (min-width: 992px) {
  .sidebar .app-brand-logo {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #111;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.22);
  }

  .sidebar .app-brand-copy {
    max-width: 160px;
    opacity: 1;
    transform: none;
  }

  .sidebar .sidebar-brand .small {
    display: block;
    margin-top: 0.3rem;
    color: rgba(255, 255, 255, 0.82) !important;
    font-size: 0.68rem;
    line-height: 1.35;
    white-space: nowrap;
  }

  body.desktop-sidebar-collapsed .sidebar .app-brand-logo {
    width: 40px;
    height: 40px;
  }

  body.desktop-sidebar-collapsed .sidebar .app-brand-copy {
    max-width: 0;
    opacity: 0;
    transform: translateX(-8px);
  }
}

/* Final cascade guard for the dashboard Table Head replica. */
html body.app-corporate-preview .app-page-shell .dashboard-reference .dashboard-events-table > thead > tr > th {
  background: #f3f6f9 !important;
  border: 1px solid #e9ebec !important;
  color: #000 !important;
  font-family: "Poppins", sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: 19.5px !important;
  padding: 12px 9.6px !important;
  text-transform: none !important;
}

html body.app-corporate-preview .app-page-shell .dashboard-reference .dashboard-events-table > tbody > tr > td {
  border: 1px solid #e9ebec !important;
  color: #212529 !important;
  font-family: "Poppins", sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 19.5px !important;
  padding: 12px 9.6px !important;
}

/* Velzon sm mode: collapsed group icons open their real submenu in a compact
   side flyout, keeping every route reachable without expanding the rail. */
.app-sidebar-flyout[hidden] {
  display: none !important;
}

.app-sidebar-flyout {
  position: fixed;
  z-index: 1085;
  width: 238px;
  max-height: calc(100dvh - 16px);
  overflow-y: auto;
  padding: 0.75rem 0;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 0.25rem;
  background: #151515;
  box-shadow: 0 0.5rem 1.5rem rgba(15, 15, 15, 0.28);
  color: #fff;
}

.app-sidebar-flyout__title {
  padding: 0.3rem 1rem 0.65rem;
  color: rgba(255, 255, 255, 0.66);
  font-family: "Poppins", sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.app-sidebar-flyout__links .nav-link {
  display: flex;
  flex: 0 0 42px !important;
  width: 100% !important;
  height: 42px !important;
  min-height: 42px !important;
  max-height: 42px !important;
  align-items: center;
  justify-content: flex-start !important;
  padding: 0.625rem 1rem !important;
  border-radius: 0 !important;
  color: rgba(255, 255, 255, 0.78) !important;
  font-family: "HK Grotesk", sans-serif !important;
  font-size: 0.875rem !important;
  font-weight: 400 !important;
  text-decoration: none;
}

.app-sidebar-flyout__links {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

.app-sidebar-flyout .app-sidebar-label {
  display: inline !important;
  max-width: none !important;
  max-height: none !important;
  opacity: 1 !important;
  overflow: visible !important;
  transform: none !important;
  pointer-events: auto !important;
  white-space: normal !important;
}

.app-sidebar-flyout .app-sidebar-icon {
  display: inline-flex !important;
  flex: 0 0 1.75rem !important;
  width: 1.75rem !important;
  height: 1.25rem !important;
  align-items: center;
  justify-content: center !important;
  margin-right: 0.25rem !important;
}

.app-sidebar-flyout__links .nav-link:hover,
.app-sidebar-flyout__links .nav-link:focus-visible {
  background: rgba(255, 255, 255, 0.08);
  color: var(--corporate-orange, #f6a009) !important;
  outline: 0;
}

@media (max-width: 991.98px) {
  .app-sidebar-flyout {
    display: none !important;
  }
}

/* Keep the dashboard table inside its card; the reference table has no forced horizontal strip. */
@media (min-width: 576px) {
  html body.app-corporate-preview .app-page-shell .dashboard-events-card .app-table-responsive {
    overflow: hidden !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-radius: 0 !important;
  }

  html body.app-corporate-preview .app-page-shell .dashboard-events-card .dashboard-events-table {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    table-layout: fixed !important;
  }

  html body.app-corporate-preview .app-page-shell .dashboard-events-card .dashboard-events-table th:nth-child(1),
  html body.app-corporate-preview .app-page-shell .dashboard-events-card .dashboard-events-table td:nth-child(1) {
    width: 34%;
  }

  html body.app-corporate-preview .app-page-shell .dashboard-events-card .dashboard-events-table th:nth-child(2),
  html body.app-corporate-preview .app-page-shell .dashboard-events-card .dashboard-events-table td:nth-child(2) {
    width: 18%;
  }

  html body.app-corporate-preview .app-page-shell .dashboard-events-card .dashboard-events-table th:nth-child(3),
  html body.app-corporate-preview .app-page-shell .dashboard-events-card .dashboard-events-table td:nth-child(3) {
    width: 18%;
  }

  html body.app-corporate-preview .app-page-shell .dashboard-events-card .dashboard-events-table th:nth-child(4),
  html body.app-corporate-preview .app-page-shell .dashboard-events-card .dashboard-events-table td:nth-child(4) {
    width: 17%;
  }

html body.app-corporate-preview .app-page-shell .dashboard-events-card .dashboard-events-table th:nth-child(5),
html body.app-corporate-preview .app-page-shell .dashboard-events-card .dashboard-events-table td:nth-child(5) {
    width: 13%;
  }
}

/* Corporate button standard: orange primary, white/orange secondary, soft red destructive. */
body.app-corporate-preview .btn-primary,
body.app-corporate-preview .btn-success,
body.app-corporate-preview .btn-warning,
body.app-corporate-preview .btn-info,
body.app-corporate-preview .cooladmin-m-btn--primary,
body.app-corporate-preview .app-tailadmin-light-btn--primary,
body.app-corporate-preview .app-tailadmin-light-btn--success,
body.app-corporate-preview .app-sneat-event-action--call,
body.app-corporate-preview .dashboard-review-button,
body.app-corporate-preview .fc .fc-button-primary {
  border-color: var(--corporate-orange) !important;
  background: var(--corporate-orange) !important;
  color: var(--corporate-white) !important;
}

body.app-corporate-preview .btn-primary:hover,
body.app-corporate-preview .btn-primary:focus-visible,
body.app-corporate-preview .btn-success:hover,
body.app-corporate-preview .btn-success:focus-visible,
body.app-corporate-preview .btn-warning:hover,
body.app-corporate-preview .btn-warning:focus-visible,
body.app-corporate-preview .btn-info:hover,
body.app-corporate-preview .btn-info:focus-visible,
body.app-corporate-preview .cooladmin-m-btn--primary:hover,
body.app-corporate-preview .cooladmin-m-btn--primary:focus-visible,
body.app-corporate-preview .app-tailadmin-light-btn--primary:hover,
body.app-corporate-preview .app-tailadmin-light-btn--primary:focus-visible,
body.app-corporate-preview .app-tailadmin-light-btn--success:hover,
body.app-corporate-preview .app-tailadmin-light-btn--success:focus-visible,
body.app-corporate-preview .app-sneat-event-action--call:hover,
body.app-corporate-preview .app-sneat-event-action--call:focus-visible,
body.app-corporate-preview .dashboard-review-button:hover,
body.app-corporate-preview .dashboard-review-button:focus-visible,
body.app-corporate-preview .fc .fc-button-primary:hover,
body.app-corporate-preview .fc .fc-button-primary:focus-visible {
  border-color: var(--corporate-orange-dark) !important;
  background: var(--corporate-orange-dark) !important;
  color: var(--corporate-white) !important;
}

body.app-corporate-preview .btn-outline-primary,
body.app-corporate-preview .btn-outline-success,
body.app-corporate-preview .btn-outline-warning,
body.app-corporate-preview .btn-outline-info,
body.app-corporate-preview .btn-outline-dark,
body.app-corporate-preview .app-tailadmin-light-btn--light,
body.app-corporate-preview .app-sneat-event-action--edit,
body.app-corporate-preview .cooladmin-m-btn--ghost {
  border-color: var(--corporate-orange) !important;
  background: var(--corporate-white) !important;
  color: var(--corporate-orange-dark) !important;
}

body.app-corporate-preview .btn-outline-primary:hover,
body.app-corporate-preview .btn-outline-primary:focus-visible,
body.app-corporate-preview .btn-outline-success:hover,
body.app-corporate-preview .btn-outline-success:focus-visible,
body.app-corporate-preview .btn-outline-warning:hover,
body.app-corporate-preview .btn-outline-warning:focus-visible,
body.app-corporate-preview .btn-outline-info:hover,
body.app-corporate-preview .btn-outline-info:focus-visible,
body.app-corporate-preview .btn-outline-dark:hover,
body.app-corporate-preview .btn-outline-dark:focus-visible,
body.app-corporate-preview .app-tailadmin-light-btn--light:hover,
body.app-corporate-preview .app-tailadmin-light-btn--light:focus-visible,
body.app-corporate-preview .app-sneat-event-action--edit:hover,
body.app-corporate-preview .app-sneat-event-action--edit:focus-visible,
body.app-corporate-preview .cooladmin-m-btn--ghost:hover,
body.app-corporate-preview .cooladmin-m-btn--ghost:focus-visible {
  border-color: var(--corporate-orange) !important;
  background: var(--corporate-orange-soft) !important;
  color: var(--corporate-orange-dark) !important;
}

body.app-corporate-preview .btn-dark,
body.app-corporate-preview .btn-outline-secondary {
  border-color: var(--corporate-orange) !important;
  background: var(--corporate-white) !important;
  color: var(--corporate-orange-dark) !important;
}

body.app-corporate-preview .btn-dark:hover,
body.app-corporate-preview .btn-dark:focus-visible,
body.app-corporate-preview .btn-outline-secondary:hover,
body.app-corporate-preview .btn-outline-secondary:focus-visible {
  border-color: var(--corporate-orange) !important;
  background: var(--corporate-orange-soft) !important;
  color: var(--corporate-orange-dark) !important;
}

body.app-corporate-preview .app-tailadmin-modal-btn--primary,
body.app-corporate-preview .app-tailadmin-modal-btn--primary:hover,
body.app-corporate-preview .app-tailadmin-modal-btn--primary:focus-visible {
  border-color: var(--corporate-orange) !important;
  background: var(--corporate-orange) !important;
  color: var(--corporate-white) !important;
}

body.app-corporate-preview .btn-danger,
body.app-corporate-preview .btn-outline-danger,
body.app-corporate-preview .app-sneat-event-action--danger {
  border-color: #fecdd3 !important;
  background: #fff1f2 !important;
  color: #be123c !important;
}

body.app-corporate-preview .btn-danger:hover,
body.app-corporate-preview .btn-danger:focus-visible,
body.app-corporate-preview .btn-outline-danger:hover,
body.app-corporate-preview .btn-outline-danger:focus-visible,
body.app-corporate-preview .app-sneat-event-action--danger:hover,
body.app-corporate-preview .app-sneat-event-action--danger:focus-visible {
  border-color: #fb7185 !important;
  background: #ffe4e6 !important;
  color: #9f1239 !important;
}

body.app-corporate-preview .fc .fc-button-primary.fc-button-active,
body.app-corporate-preview .fc .fc-button-primary:active {
  border-color: var(--corporate-orange-dark) !important;
  background: var(--corporate-orange-dark) !important;
  color: var(--corporate-white) !important;
}

/* Shared Velzon Table Head treatment for every authenticated operational table. */
body.app-corporate-preview .app-page-shell .table-responsive > .table,
body.app-corporate-preview .app-page-shell .app-table-responsive > .table,
body.app-corporate-preview .app-page-shell .table-wrapper > .table {
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  border-collapse: collapse !important;
  table-layout: auto;
}

body.app-corporate-preview .app-page-shell .table-responsive > .table > thead > tr > th,
body.app-corporate-preview .app-page-shell .app-table-responsive > .table > thead > tr > th,
body.app-corporate-preview .app-page-shell .table-wrapper > .table > thead > tr > th {
  background: #f3f6f9 !important;
  border: 1px solid #e9ebec !important;
  color: #000 !important;
  font-family: "Poppins", sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: 19.5px !important;
  padding: 12px 9.6px !important;
  text-transform: none !important;
  white-space: normal;
}

body.app-corporate-preview .app-page-shell .table-responsive > .table > tbody > tr > td,
body.app-corporate-preview .app-page-shell .app-table-responsive > .table > tbody > tr > td,
body.app-corporate-preview .app-page-shell .table-wrapper > .table > tbody > tr > td {
  border: 1px solid #e9ebec !important;
  color: #212529 !important;
  font-family: "Poppins", sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 19.5px !important;
  padding: 12px 9.6px !important;
  vertical-align: middle;
}

/* Cards replace horizontal scrolling on tablets and phones. */
@media (max-width: 991.98px) {
  body.app-corporate-preview .app-page-shell .table-responsive,
  body.app-corporate-preview .app-page-shell .app-table-responsive,
  body.app-corporate-preview .app-page-shell .table-wrapper {
    max-width: 100% !important;
    overflow: hidden !important;
    overscroll-behavior-x: initial !important;
  }

  body.app-corporate-preview .app-page-shell .table-responsive > .table,
  body.app-corporate-preview .app-page-shell .app-table-responsive > .table,
  body.app-corporate-preview .app-page-shell .table-wrapper > .table {
    width: 100% !important;
    min-width: 0 !important;
  }

  body.app-corporate-preview .app-page-shell .table-responsive > .table:not(.app-clickable-table),
  body.app-corporate-preview .app-page-shell .app-table-responsive > .table:not(.app-clickable-table),
  body.app-corporate-preview .app-page-shell .table-wrapper > .table:not(.app-clickable-table) {
    display: block;
  }

  body.app-corporate-preview .app-page-shell .table-responsive > .table:not(.app-clickable-table) thead,
  body.app-corporate-preview .app-page-shell .app-table-responsive > .table:not(.app-clickable-table) thead,
  body.app-corporate-preview .app-page-shell .table-wrapper > .table:not(.app-clickable-table) thead {
    display: none !important;
  }

  body.app-corporate-preview .app-page-shell .table-responsive > .table:not(.app-clickable-table) tbody,
  body.app-corporate-preview .app-page-shell .app-table-responsive > .table:not(.app-clickable-table) tbody,
  body.app-corporate-preview .app-page-shell .table-wrapper > .table:not(.app-clickable-table) tbody {
    display: grid;
    gap: 0.85rem;
  }

body.app-corporate-preview .app-page-shell .table-responsive > .table:not(.app-clickable-table) tbody tr,
  body.app-corporate-preview .app-page-shell .app-table-responsive > .table:not(.app-clickable-table) tbody tr,
  body.app-corporate-preview .app-page-shell .table-wrapper > .table:not(.app-clickable-table) tbody tr {
    display: grid;
    min-width: 0;
    overflow: hidden;
    border: 1px solid #e9ebec;
    border-radius: 0.5rem;
    background: #fff;
    box-shadow: 0 4px 12px rgba(21, 21, 21, 0.05);
  }

  body.app-corporate-preview .app-page-shell .table-responsive > .table:not(.app-clickable-table) tbody td,
  body.app-corporate-preview .app-page-shell .app-table-responsive > .table:not(.app-clickable-table) tbody td,
  body.app-corporate-preview .app-page-shell .table-wrapper > .table:not(.app-clickable-table) tbody td {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    border: 0 !important;
    border-bottom: 1px solid #f0f0ed !important;
    overflow-wrap: anywhere;
    text-align: right;
  }

  body.app-corporate-preview .app-page-shell .table-responsive > .table:not(.app-clickable-table) tbody td::before,
  body.app-corporate-preview .app-page-shell .app-table-responsive > .table:not(.app-clickable-table) tbody td::before,
  body.app-corporate-preview .app-page-shell .table-wrapper > .table:not(.app-clickable-table) tbody td::before {
    content: attr(data-label);
    flex: 0 0 38%;
    max-width: 38%;
    color: #6b6b67;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-align: left;
    text-transform: uppercase;
  }

  body.app-corporate-preview .app-page-shell .table-responsive > .table:not(.app-clickable-table) tbody td:last-child,
  body.app-corporate-preview .app-page-shell .app-table-responsive > .table:not(.app-clickable-table) tbody td:last-child,
  body.app-corporate-preview .app-page-shell .table-wrapper > .table:not(.app-clickable-table) tbody td:last-child {
    border-bottom: 0 !important;
  }

  body.app-corporate-preview .app-page-shell .table-responsive > .table:not(.app-clickable-table) tbody td[colspan],
  body.app-corporate-preview .app-page-shell .app-table-responsive > .table:not(.app-clickable-table) tbody td[colspan],
  body.app-corporate-preview .app-page-shell .table-wrapper > .table:not(.app-clickable-table) tbody td[colspan] {
    display: block;
    text-align: left;
  }

  body.app-corporate-preview .app-page-shell .table-responsive > .table:not(.app-clickable-table) tbody td[colspan]::before,
  body.app-corporate-preview .app-page-shell .app-table-responsive > .table:not(.app-clickable-table) tbody td[colspan]::before,
  body.app-corporate-preview .app-page-shell .table-wrapper > .table:not(.app-clickable-table) tbody td[colspan]::before {
    display: none;
  }
}

.sidebar .app-sidebar-icon .mdi {
  display: inline-flex;
  width: 18px;
  height: 18px;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  line-height: 1;
}

/* Drawer de chat inspirado en la estructura de apps-chat de Velzon. */
.pizpan-chat-backdrop { position: fixed; z-index: 1060; inset: 0; background: rgba(15, 23, 42, .42); opacity: 0; transition: opacity 180ms ease; }
.pizpan-chat-backdrop:not([hidden]) { opacity: 1; }
.pizpan-chat-drawer { position: fixed; z-index: 1061; top: 0; right: 0; width: min(980px, 100vw); height: 100dvh; overflow: hidden; background: #fff; box-shadow: -18px 0 45px rgba(15, 23, 42, .2); transform: translateX(100%); transition: transform 240ms ease; }
.pizpan-chat-drawer.is-open { transform: translateX(0); }
body.lead-chat-open { overflow: hidden; }
.pizpan-chat-shell { display: flex; width: 100%; height: 100%; margin: 0; padding: 0; background: #f5f7fa; }
.pizpan-chat-shell .chat-leftsidebar { flex: 0 0 286px; width: 286px; border-right: 1px solid #e9ebec; background: #fff; }
.pizpan-chat-sidebar-head, .pizpan-chat-topbar { display: flex; align-items: center; min-height: 72px; padding: 16px 18px; background: #fff; border-bottom: 1px solid #e9ebec; }
.pizpan-chat-sidebar-head { justify-content: space-between; }
.pizpan-chat-eyebrow { display: block; margin-bottom: 3px; color: #878a99; font-size: .6875rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.pizpan-chat-sidebar-head h2, .pizpan-chat-topbar h2 { margin: 0; color: #212529; font-size: 1rem; font-weight: 600; }
.pizpan-chat-icon-btn { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: .25rem; background: transparent; color: #878a99; font-size: 19px; }
.pizpan-chat-icon-btn:hover:not(:disabled), .pizpan-chat-icon-btn:focus-visible:not(:disabled) { background: #f1f3f5; color: #405189; }
.pizpan-chat-icon-btn:disabled { cursor: not-allowed; opacity: .45; }
.pizpan-chat-search { position: relative; margin: 16px; }
.pizpan-chat-search > .mdi { position: absolute; top: 50%; left: 12px; color: #878a99; transform: translateY(-50%); }
.pizpan-chat-search input { width: 100%; height: 38px; padding: 0 12px 0 36px; border: 1px solid #e9ebec; border-radius: .25rem; background: #f8f9fa; color: #212529; font-size: .8125rem; }
.pizpan-chat-tabs { display: flex; gap: 20px; padding: 0 18px; border-bottom: 1px solid #e9ebec; }
.pizpan-chat-tabs button { position: relative; padding: 0 0 12px; border: 0; background: transparent; color: #878a99; font-size: .8125rem; }
.pizpan-chat-tabs button.is-active { color: #405189; font-weight: 600; }
.pizpan-chat-tabs button.is-active::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: #405189; content: ""; }
.pizpan-chat-contact-list { padding: 12px 8px; }
.pizpan-chat-contact { display: flex; width: 100%; align-items: center; gap: 10px; padding: 10px; border: 0; border-radius: .25rem; background: transparent; text-align: left; }
.pizpan-chat-contact.is-active, .pizpan-chat-contact:hover { background: #f3f6f9; }
.pizpan-chat-avatar { display: inline-flex; width: 38px; height: 38px; flex: 0 0 38px; align-items: center; justify-content: center; border-radius: 50%; background: #e8ebf5; color: #405189; font-size: .875rem; font-weight: 600; }
.pizpan-chat-avatar--top { margin-right: 10px; }
.pizpan-chat-contact-copy, .pizpan-chat-topbar-copy { display: grid; min-width: 0; gap: 3px; }
.pizpan-chat-contact-copy strong, .pizpan-chat-topbar-copy h2 { overflow: hidden; color: #212529; font-size: .875rem; text-overflow: ellipsis; white-space: nowrap; }
.pizpan-chat-contact-copy small, .pizpan-chat-topbar-copy span { overflow: hidden; color: #878a99; font-size: .75rem; text-overflow: ellipsis; white-space: nowrap; }
.pizpan-chat-topbar-copy span .mdi { color: #25d366; }
.pizpan-chat-contact-status { width: 8px; height: 8px; margin-left: auto; border-radius: 50%; background: #878a99; }
.pizpan-chat-topbar { gap: 0; }
.pizpan-chat-topbar-actions { display: flex; gap: 2px; margin-left: auto; }
.pizpan-chat-mobile-back { display: none; margin-right: 4px; }
.pizpan-chat-contact-info { display: grid; gap: 4px; padding: 12px 24px; background: #fff; border-bottom: 1px solid #e9ebec; color: #878a99; font-size: .75rem; }
.pizpan-chat-conversation { height: calc(100% - 136px); overflow-y: auto; padding: 24px; background: #f5f7fa; }
.pizpan-chat-locked { display: grid; max-width: 480px; margin: 12vh auto 0; justify-items: center; gap: 10px; padding: 28px 24px; border: 1px solid #e9ebec; border-radius: .25rem; background: #fff; text-align: center; }
.pizpan-chat-locked-icon { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; background: #e8f7ee; color: #25d366; font-size: 26px; }
.pizpan-chat-locked h3 { margin: 0; color: #212529; font-size: 1rem; }
.pizpan-chat-locked p { max-width: 410px; margin: 0; color: #878a99; font-size: .8125rem; line-height: 1.6; }
.pizpan-chat-open-whatsapp { display: inline-flex; align-items: center; gap: 8px; margin-top: 4px; padding: 8px 12px; border: 1px solid #25d366; border-radius: .25rem; color: #128c7e; font-size: .8125rem; text-decoration: none; }
.pizpan-chat-message { display: flex; margin-bottom: 12px; }
.pizpan-chat-message--outgoing { justify-content: flex-end; }
.pizpan-chat-bubble { max-width: min(72%, 560px); padding: 9px 12px; border: 1px solid #e9ebec; border-radius: .25rem; background: #fff; box-shadow: 0 2px 4px rgba(15, 23, 42, .03); }
.pizpan-chat-message--outgoing .pizpan-chat-bubble { border-color: #d6f0d2; background: #eaf7e8; }
.pizpan-chat-bubble p { margin: 0 0 4px; color: #212529; font-size: .8125rem; line-height: 1.5; white-space: pre-wrap; }
.pizpan-chat-bubble small { color: #878a99; font-size: .6875rem; }
.pizpan-chat-input-section { position: absolute; right: 0; bottom: 0; left: 286px; display: flex; align-items: center; gap: 8px; min-height: 64px; padding: 12px 18px; background: #fff; border-top: 1px solid #e9ebec; }
.pizpan-chat-composer { display: flex; min-width: 0; flex: 1; align-items: center; border: 1px solid #e9ebec; border-radius: .25rem; background: #f8f9fa; }
.pizpan-chat-composer input { min-width: 0; flex: 1; height: 38px; padding: 0 12px; border: 0; outline: 0; background: transparent; color: #878a99; font-size: .75rem; }
.pizpan-chat-safe-label { display: inline-flex; align-items: center; gap: 4px; color: #878a99; font-size: .6875rem; white-space: nowrap; }
.pizpan-chat-safe-label .mdi { color: #405189; }
@media (max-width: 767.98px) {
  .pizpan-chat-drawer { width: 100vw; }
  .pizpan-chat-shell .chat-leftsidebar { display: none; }
  .pizpan-chat-mobile-back { display: inline-flex; }
  .pizpan-chat-conversation { height: calc(100% - 136px); padding: 16px; }
  .pizpan-chat-input-section { left: 0; padding: 10px 12px; }
  .pizpan-chat-safe-label { display: none; }
  .pizpan-chat-bubble { max-width: 88%; }
}
@media (prefers-reduced-motion: reduce) {
  .pizpan-chat-drawer, .pizpan-chat-backdrop { transition: none; }
}

/* Las KPI conservan el marco completo, sin la franja superior de color. */
body.app-corporate-preview .dashboard-kpi-card--adminlte,
.dashboard-reference .dashboard-kpi-card--adminlte {
  border-top: 1px solid var(--app-adminlte-card-border) !important;
}

.pizpan-tour[hidden] { display: none; }
.pizpan-tour { position: fixed; z-index: 1200; inset: 0; }
.pizpan-tour__backdrop { position: absolute; inset: 0; background: rgba(15, 23, 42, .48); }
.pizpan-tour__card { position: absolute; top: 50%; left: 50%; width: min(420px, calc(100vw - 32px)); padding: 24px; border: 1px solid #e9ebec; border-radius: .25rem; background: #fff; box-shadow: 0 18px 50px rgba(15, 23, 42, .22); transform: translate(-50%, -50%); }
.pizpan-tour__step { color: #405189; font-size: .6875rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.pizpan-tour__card h2 { margin: 8px 0 7px; color: #212529; font-size: 1.15rem; }
.pizpan-tour__card p { margin: 0; color: #878a99; font-size: .875rem; line-height: 1.6; }
.pizpan-tour__actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 22px; }
.pizpan-tour__skip, .pizpan-tour__next { min-height: 38px; padding: 8px 14px; border-radius: .25rem; font-size: .8125rem; }
.pizpan-tour__skip { border: 0; background: transparent; color: #878a99; }
.pizpan-tour__next { border: 1px solid #405189; background: #405189; color: #fff; }

/* Catálogo de planes: imagen y contenido se leen de un vistazo en cualquier dispositivo. */
.proposal-package-catalog { margin-bottom: 24px; padding: 26px; border: 1px solid #e9ebec; border-radius: 8px; background: #fff; box-shadow: 0 8px 24px rgba(15, 23, 42, .06); }
.proposal-package-catalog__heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.proposal-package-eyebrow { display: block; margin-bottom: 6px; color: #f39a08; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.proposal-package-catalog h2 { margin: 0; color: #172b4d; font-size: 1.35rem; font-weight: 700; }
.proposal-package-catalog__count { color: #6b778c; font-size: .8rem; white-space: nowrap; }
.proposal-package-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.proposal-package-card { display: grid; grid-template-columns: 132px minmax(0, 1fr); min-height: 190px; overflow: hidden; border: 1px solid #e9ebec; border-radius: 8px; background: #fff; box-shadow: 0 5px 16px rgba(15, 23, 42, .06); cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.proposal-package-card:hover, .proposal-package-card:focus-visible { border-color: #f39a08; box-shadow: 0 10px 26px rgba(15, 23, 42, .12); outline: 0; transform: translateY(-2px); }
.proposal-package-card__media { position: relative; display: grid; place-items: center; min-height: 190px; padding: 12px; background: #f7f8fa; }
.proposal-package-card--premium .proposal-package-card__media { background: #f5f0e9; }
.proposal-package-card__media img { width: 108px; height: 108px; object-fit: cover; border: 3px solid #f0a21a; border-radius: 50%; box-shadow: 0 5px 14px rgba(15, 23, 42, .16); }
.proposal-package-card__media span { position: absolute; bottom: 12px; padding: 4px 9px; border-radius: 999px; background: #fff; color: #c87800; font-size: .68rem; font-weight: 700; }
.proposal-package-card__body { display: flex; min-width: 0; flex-direction: column; padding: 20px; }
.proposal-package-card__topline { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #6b778c; font-size: .72rem; }
.proposal-package-card__topline strong { color: #c87800; font-size: .95rem; white-space: nowrap; }
.proposal-package-card h3 { margin: 10px 0 7px; color: #172b4d; font-size: 1.08rem; }
.proposal-package-card p { margin: 0; color: #6b778c; font-size: .82rem; line-height: 1.55; }
.proposal-package-card__meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 14px; color: #6b778c; font-size: .74rem; }
.proposal-package-card__edit { color: #f39a08; font-weight: 700; white-space: nowrap; }
@media (max-width: 991.98px) {
  .proposal-package-cards { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
  .proposal-package-catalog { padding: 18px 14px; }
  .proposal-package-catalog__heading { align-items: start; flex-direction: column; gap: 7px; }
  .proposal-package-card { grid-template-columns: 104px minmax(0, 1fr); min-height: 164px; }
  .proposal-package-card__media { min-height: 164px; padding: 8px; }
  .proposal-package-card__media img { width: 84px; height: 84px; }
  .proposal-package-card__media span { bottom: 8px; font-size: .62rem; }
  .proposal-package-card__body { padding: 14px 12px; }
  .proposal-package-card h3 { font-size: .96rem; }
  .proposal-package-card p { font-size: .76rem; }
  .proposal-package-card__meta { align-items: start; flex-direction: column; gap: 5px; }
}
