/* tema-mimarisi: never show browser translation chrome on product portals */
.goog-te-banner-frame,
.goog-te-menu-frame,
#goog-gt-tt,
.skiptranslate iframe,
body > .skiptranslate {
  display: none !important;
}
html.translated-ltr body,
html.translated-rtl body {
  top: 0 !important;
}

[data-bs-theme-primary="slate"] { --tblr-primary: #475569; --tblr-primary-rgb: 71, 85, 105; }
[data-bs-theme-primary="navy"] { --tblr-primary: #102a43; --tblr-primary-rgb: 16, 42, 67; }
[data-bs-theme-primary="blue"] { --tblr-primary: #0b5cad; --tblr-primary-rgb: 11, 92, 173; }
[data-bs-theme-primary="teal"] { --tblr-primary: #0d7377; --tblr-primary-rgb: 13, 115, 119; }
[data-bs-theme-primary="burgundy"] { --tblr-primary: #6b2135; --tblr-primary-rgb: 107, 33, 53; }
[data-bs-theme-primary="custom"] {
  /* --tblr-primary / --tblr-primary-rgb set by theme.ts */
}

[data-bs-theme-primary] {
  --tblr-primary-lt: color-mix(in srgb, var(--tblr-primary) 10%, #fff);
  --tblr-primary-darken: color-mix(in srgb, var(--tblr-primary) 88%, #000);
  --tblr-link-color: var(--tblr-primary);
  --tblr-link-color-rgb: var(--tblr-primary-rgb);
  --tblr-link-hover-color: color-mix(in srgb, var(--tblr-primary) 82%, #000);
  --tblr-link-hover-color-rgb: var(--tblr-primary-rgb);
  --tblr-active-bg: rgba(var(--tblr-primary-rgb), 0.04);
  --tblr-primary-text-emphasis: color-mix(in srgb, var(--tblr-primary) 40%, #000);
  --tblr-primary-bg-subtle: var(--tblr-primary-lt);
  --tblr-primary-border-subtle: color-mix(in srgb, var(--tblr-primary) 22%, #fff);
  --tblr-navbar-active-border-color: var(--tblr-primary);
}

[data-bs-theme="dark"][data-bs-theme-primary] {
  --tblr-primary-lt: color-mix(in srgb, var(--tblr-primary) 22%, var(--tblr-body-bg));
  --tblr-link-color: color-mix(in srgb, var(--tblr-primary) 70%, #fff);
  --tblr-link-hover-color: color-mix(in srgb, var(--tblr-primary) 50%, #fff);
  --tblr-active-bg: rgba(var(--tblr-primary-rgb), 0.16);
  --tblr-primary-text-emphasis: color-mix(in srgb, var(--tblr-primary) 55%, #fff);
  --tblr-primary-bg-subtle: var(--tblr-primary-lt);
  --tblr-primary-border-subtle: color-mix(in srgb, var(--tblr-primary) 35%, var(--tblr-body-bg));
}

[data-bs-theme-font="sans-serif"] {
  --tblr-font-sans-serif: "Inter Var", -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI, Roboto, Helvetica Neue, sans-serif;
  --tblr-body-font-family: var(--tblr-font-sans-serif);
}

[data-bs-theme-font="serif"] {
  --tblr-font-sans-serif: Georgia, Cambria, "Times New Roman", Times, serif;
  --tblr-body-font-family: Georgia, Cambria, "Times New Roman", Times, serif;
}

[data-bs-theme-font="monospace"] {
  --tblr-font-sans-serif: var(--tblr-font-monospace);
  --tblr-body-font-family: var(--tblr-font-monospace);
}

[data-bs-theme-font="comic"] {
  --tblr-font-sans-serif: "Comic Sans MS", "Comic Sans", cursive;
  --tblr-body-font-family: "Comic Sans MS", "Comic Sans", cursive;
}

/* Accessibility font scale — rem-based UI follows html font-size */
html[data-bs-theme-font-size="50"] { font-size: 50%; }
html[data-bs-theme-font-size="75"] { font-size: 75%; }
html[data-bs-theme-font-size="100"] { font-size: 100%; }
html[data-bs-theme-font-size="110"] { font-size: 110%; }
html[data-bs-theme-font-size="125"] { font-size: 125%; }
html[data-bs-theme-font-size="150"] { font-size: 150%; }

/* Typography fully bound to Font + Theme Base + Color Scheme */
html {
  font-family: var(--tblr-body-font-family, var(--tblr-font-sans-serif));
}

body,
.page,
.navbar,
.card,
.modal,
.dropdown-menu,
.btn,
.form-control,
.form-select,
.page-title,
.page-description,
.page-pretitle,
.card-title,
.subheader,
.nav-link,
.nav-link-title,
.dropdown-item,
.footer,
.pts-brand-wordmark,
.pts-footer-brand,
.pts-home-hero-title,
.pts-home-hero-copy,
.pts-home-stat-label,
.pts-home-panel-label {
  font-family: inherit;
}

body {
  color: var(--tblr-body-color);
  background-color: var(--tblr-body-bg);
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.page-title,
.card-title,
.modal-title {
  color: var(--tblr-heading-color);
  font-family: inherit;
}

.text-secondary,
.page-description,
.page-pretitle,
.form-hint,
.text-muted {
  color: var(--tblr-secondary) !important;
}

a:not(.btn):not(.nav-link):not(.dropdown-item):not(.list-group-item):not(.page-link) {
  color: var(--tblr-link-color, var(--tblr-primary));
}

a:not(.btn):not(.nav-link):not(.dropdown-item):not(.list-group-item):not(.page-link):hover {
  color: var(--tblr-link-hover-color, var(--tblr-primary-darken, var(--tblr-primary)));
}

.pts-brand-wordmark,
.pts-footer-brand {
  font-family: var(--tblr-body-font-family, var(--tblr-font-sans-serif));
}

.pts-brand-wordmark-pts,
.pts-footer-brand-pts {
  color: var(--tblr-heading-color, var(--tblr-body-color));
}

.pts-brand-wordmark-flex,
.pts-footer-brand-flex {
  color: var(--tblr-primary);
}

[data-bs-theme-primary-tone="pale"] .pts-brand-wordmark-flex,
[data-bs-theme-primary-tone="pale"] .pts-footer-brand-flex {
  color: color-mix(in srgb, var(--tblr-primary) 52%, var(--tblr-body-color));
}

[data-bs-theme="dark"][data-bs-theme-primary-tone="pale"] .pts-brand-wordmark-flex,
[data-bs-theme="dark"][data-bs-theme-primary-tone="pale"] .pts-footer-brand-flex {
  color: color-mix(in srgb, var(--tblr-primary) 72%, #fff);
}

.page-header .page-title,
.page-header .pts-page-title,
.pts-page-header .page-title,
.pts-page-header .pts-page-title,
.pts-manage-section-head h2 {
  font-weight: var(--pts-page-title-weight, 600);
  letter-spacing: -0.02em;
  color: #000 !important;
  background: none !important;
  -webkit-text-fill-color: #000 !important;
  filter: none !important;
}

/* Page header title row: icon soft-refreshes page content (no full browser reload). */
.pts-page-title-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}

.pts-page-title-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 0;
  border-radius: var(--tblr-border-radius, 0.375rem);
  background: color-mix(in srgb, var(--tblr-primary) 10%, transparent);
  color: var(--tblr-primary);
  cursor: pointer;
}

.pts-page-title-icon:hover:not(:disabled),
.pts-page-title-icon:focus-visible:not(:disabled) {
  background: color-mix(in srgb, var(--tblr-primary) 18%, transparent);
  color: var(--tblr-primary-darken, var(--tblr-primary));
  outline: none;
}

.pts-page-title-icon:disabled {
  opacity: 0.45;
  cursor: default;
}

.pts-page-title-icon .icon {
  width: 1.15rem;
  height: 1.15rem;
}

.pts-page-header-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.2rem;
}

.pts-page-header-meta .pts-page-description {
  margin-top: 0;
}

.pts-page-header-under-development {
  padding: 0.18rem 0.55rem;
  font-size: 0.65rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.pts-page-header-under-development .pts-page-development-pulse {
  width: 0.35rem;
  height: 0.35rem;
}

/* Short page description under the title — theme secondary, keep one line intent. */
.pts-page-header .pts-page-description,
.page-header .pts-page-description {
  margin-top: 0.2rem;
  font-size: 0.8125rem;
  line-height: 1.35;
  color: var(--tblr-secondary) !important;
  max-width: 42rem;
}

[data-bs-theme="dark"] .pts-page-header .pts-page-description,
[data-bs-theme="dark"] .page-header .pts-page-description {
  color: color-mix(in srgb, var(--tblr-secondary) 88%, #fff) !important;
}

.pts-page-info-modal .pts-page-info-purpose {
  margin: 0;
  color: var(--tblr-body-color);
  line-height: 1.45;
}

.pts-page-info-modal .pts-page-info-cando-title {
  margin: 0 0 0.35rem;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--tblr-primary);
  text-transform: none;
}

.pts-page-info-modal .pts-page-info-cando {
  line-height: 1.45;
}

.pts-ticket-layer {
  z-index: 1090 !important;
}

.pts-ticket-layer-backdrop {
  z-index: 1085 !important;
}

.pts-dev-request-inspect-desc {
  margin: 0;
  padding: 0.75rem 0.85rem;
  border-radius: var(--tblr-border-radius);
  background: var(--tblr-bg-surface-secondary, var(--tblr-gray-100));
  white-space: pre-wrap;
  word-break: break-word;
  max-height: 40vh;
  overflow: auto;
  font-size: 0.875rem;
}

.pts-ticket-dialog {
  width: min(920px, calc(100vw - 1.5rem));
  max-width: 920px;
  margin: 1rem auto;
}

@media (prefers-reduced-motion: no-preference) {
  .modal.show .pts-ticket-dialog {
    animation: pts-ticket-enter 0.18s ease-out;
  }
}

@keyframes pts-ticket-enter {
  from {
    opacity: 0;
    transform: translateY(0.35rem) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.pts-ticket-modal {
  max-height: min(880px, calc(100vh - 1.5rem));
  height: auto;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 88%, transparent);
  border-radius: calc(var(--tblr-border-radius) + 0.35rem);
  box-shadow:
    0 0.5rem 1.5rem color-mix(in srgb, var(--tblr-body-color, #1e293b) 8%, transparent),
    0 0.15rem 0.35rem color-mix(in srgb, var(--tblr-body-color, #1e293b) 4%, transparent);
}

.pts-ticket-header {
  flex: 0 0 auto;
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem 1.1rem 0.9rem;
  border-bottom: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 92%, transparent);
  background: color-mix(in srgb, var(--tblr-bg-surface, #fff) 96%, var(--tblr-primary) 4%);
  cursor: grab;
  touch-action: none;
  user-select: none;
}

.pts-ticket-header.is-dragging {
  cursor: grabbing;
}

.pts-ticket-dialog.is-dragging,
.pts-ticket-dialog.is-positioned {
  transition: none;
}

.pts-ticket-header-main {
  min-width: 0;
  flex: 1 1 auto;
}

.pts-ticket-title {
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--tblr-body-color, #1e293b);
}

.pts-ticket-subtitle {
  margin: 0.2rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.35;
  color: var(--tblr-secondary, #667382);
}

.pts-ticket-context {
  margin: 0.35rem 0 0;
  font-size: 0.75rem;
  line-height: 1.35;
  color: var(--tblr-secondary, #667382);
  font-weight: 500;
}

.pts-ticket-close {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  flex: 0 0 auto;
  margin: -0.15rem -0.15rem 0 0;
  padding: 0;
  border: 0;
  border-radius: calc(var(--tblr-border-radius) + 0.1rem);
  background: transparent;
  color: var(--tblr-secondary, #667382);
  cursor: pointer;
  transition:
    background-color 0.15s ease,
    color 0.15s ease,
    box-shadow 0.15s ease;
}

.pts-ticket-close .icon {
  width: 1.1rem;
  height: 1.1rem;
}

.pts-ticket-close:hover:not(:disabled) {
  color: var(--tblr-body-color, #1e293b);
  background: color-mix(in srgb, var(--tblr-body-color, #1e293b) 6%, transparent);
}

.pts-ticket-close:focus-visible {
  outline: none;
  box-shadow: 0 0 0 0.15rem color-mix(in srgb, var(--tblr-primary) 24%, transparent);
}

.pts-ticket-close:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.pts-ticket-body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0;
  overflow: auto;
}

.pts-ticket-layout {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.pts-ticket-layout-single {
  grid-template-columns: minmax(0, 1fr);
}

.pts-ticket-pane {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 1rem 1.1rem 1.05rem;
  gap: 1.1rem;
}

.pts-ticket-section {
  min-width: 0;
}

.pts-ticket-section-head {
  margin: 0 0 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--tblr-secondary, #667382);
}

.pts-ticket-section-desc .pts-ticket-section-head,
.pts-ticket-desc-label {
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  text-transform: none;
  color: var(--tblr-body-color, #1e293b);
}

.pts-ticket-desc-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.pts-ticket-desc-head .pts-ticket-desc-label {
  flex: 1 1 auto;
  min-width: 0;
}

.pts-ticket-type-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.45rem;
}

.pts-ticket-type-card {
  appearance: none;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  min-width: 0;
  width: 100%;
  padding: 0.55rem 0.5rem 0.6rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 92%, transparent);
  border-radius: calc(var(--tblr-border-radius) + 0.15rem);
  background: var(--tblr-bg-surface, #fff);
  color: var(--tblr-body-color, #1e293b);
  text-align: start;
  cursor: pointer;
  transition:
    border-color 0.15s ease,
    background-color 0.15s ease,
    box-shadow 0.15s ease,
    transform 0.15s ease;
}

.pts-ticket-type-card:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--tblr-primary) 35%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 4%, var(--tblr-bg-surface, #fff));
}

.pts-ticket-type-card:focus-visible {
  outline: none;
  border-color: color-mix(in srgb, var(--tblr-primary) 45%, var(--tblr-border-color));
  box-shadow: 0 0 0 0.15rem color-mix(in srgb, var(--tblr-primary) 22%, transparent);
}

.pts-ticket-type-card.is-selected {
  border-color: color-mix(in srgb, var(--tblr-primary) 55%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 8%, var(--tblr-bg-surface, #fff));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tblr-primary) 18%, transparent);
}

.pts-ticket-type-card.is-selected .pts-ticket-type-label {
  color: var(--tblr-primary);
  font-weight: 700;
}

.pts-ticket-type-card.is-selected .pts-ticket-type-icon {
  color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 14%, transparent);
}

.pts-ticket-type-card.is-selected .pts-ticket-type-indicator {
  opacity: 1;
  transform: scale(1);
}

.pts-ticket-type-card:disabled {
  opacity: 0.62;
  cursor: not-allowed;
}

.pts-ticket-type-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  border-radius: calc(var(--tblr-border-radius) + 0.05rem);
  color: var(--tblr-secondary, #667382);
  background: color-mix(in srgb, var(--tblr-body-color, #1e293b) 5%, transparent);
  transition:
    color 0.15s ease,
    background-color 0.15s ease;
}

.pts-ticket-type-icon-svg {
  width: 1.05rem;
  height: 1.05rem;
}

.pts-ticket-type-copy {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
  flex: 1 1 auto;
}

.pts-ticket-type-label {
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.2;
}

.pts-ticket-type-desc {
  font-size: 0.625rem;
  line-height: 1.3;
  color: var(--tblr-secondary, #667382);
}

.pts-ticket-type-indicator {
  position: absolute;
  top: 0.45rem;
  inset-inline-end: 0.45rem;
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 999px;
  background: var(--tblr-primary);
  opacity: 0;
  transform: scale(0.6);
  transition:
    opacity 0.15s ease,
    transform 0.15s ease;
}

.pts-ticket-drop:focus-visible {
  outline: none;
  border-color: var(--tblr-primary);
  box-shadow: 0 0 0 0.15rem color-mix(in srgb, var(--tblr-primary) 22%, transparent);
}

.pts-ticket-description:focus-visible {
  border-color: var(--tblr-primary);
  box-shadow: 0 0 0 0.15rem color-mix(in srgb, var(--tblr-primary) 22%, transparent);
}

.pts-ticket-section-desc {
  padding: 0.15rem 0 0.1rem;
}

.pts-ticket-desc-main {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  gap: 0.35rem;
}

.pts-ticket-desc-hint {
  margin: -0.15rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.35;
  color: color-mix(in srgb, var(--tblr-body-color) 58%, var(--tblr-secondary, #667382));
}

.pts-ticket-field-error {
  margin-top: 0.25rem;
  font-size: 0.8125rem;
  color: var(--tblr-danger, #d63939);
}

.pts-ticket-desc-field {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.pts-ticket-desc-count {
  flex: 0 0 auto;
  margin-top: 0.05rem;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1;
  color: var(--tblr-secondary, #667382);
  pointer-events: none;
  user-select: none;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.pts-ticket-desc-count.is-low {
  color: var(--tblr-warning, #f59f00);
}

.pts-ticket-desc-count.is-empty {
  color: var(--tblr-danger, #d63939);
}

.pts-ticket-desc-field.is-transcribing {
  margin-bottom: 0.15rem;
}

.pts-ticket-desc-typing {
  position: absolute;
  left: 0.15rem;
  bottom: -1.05rem;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 0.22rem;
  height: 0.9rem;
  pointer-events: none;
  user-select: none;
}

.pts-ticket-desc-typing-dot {
  width: 0.28rem;
  height: 0.28rem;
  border-radius: 999px;
  background: var(--tblr-secondary, #667382);
  opacity: 0.35;
  animation: pts-ticket-typing-dot 1.05s ease-in-out infinite;
}

.pts-ticket-desc-typing-dot:nth-child(2) {
  animation-delay: 0.18s;
}

.pts-ticket-desc-typing-dot:nth-child(3) {
  animation-delay: 0.36s;
}

@keyframes pts-ticket-typing-dot {
  0%,
  80%,
  100% {
    opacity: 0.28;
    transform: translateY(0);
  }
  40% {
    opacity: 1;
    transform: translateY(-0.12rem);
  }
}

.pts-ticket-attach-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.pts-ticket-voice-wrap {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.pts-ticket-voice {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.6rem;
  min-width: 0;
  width: 100%;
  min-height: 5.25rem;
  height: 100%;
  padding: 0.65rem 0.7rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 90%, transparent);
  border-radius: calc(var(--tblr-border-radius) + 0.15rem);
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, rgba(0, 0, 0, 0.03)) 75%, transparent);
  transition:
    border-color 0.15s ease,
    background-color 0.15s ease,
    box-shadow 0.15s ease;
}

.pts-ticket-voice:hover:not(.is-listening):not(.is-requesting) {
  border-color: color-mix(in srgb, var(--tblr-primary) 28%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 5%, var(--tblr-bg-surface, #fff));
}

.pts-ticket-voice-idle {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
  flex: 1 1 auto;
}

.pts-ticket-voice-hint {
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.25;
  color: var(--tblr-body-color, #1e293b);
}

.pts-ticket-voice-help {
  font-size: 0.6875rem;
  line-height: 1.3;
  color: var(--tblr-secondary, #667382);
}

.pts-ticket-voice-active {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
  flex: 1 1 auto;
}

.pts-ticket-voice-live {
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--tblr-danger, #d63939);
}

.pts-ticket-voice.is-listening,
.pts-ticket-voice.is-requesting {
  border-color: color-mix(in srgb, var(--tblr-danger, #d63939) 40%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-danger, #d63939) 6%, var(--tblr-bg-surface, #fff));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tblr-danger, #d63939) 12%, transparent);
}

.pts-ticket-mic {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  padding: 0;
  flex: 0 0 auto;
  border: 0;
  border-radius: 999px;
  color: var(--tblr-secondary, #667382);
  background: color-mix(in srgb, var(--tblr-body-color, #1e293b) 6%, transparent);
  cursor: pointer;
  transition:
    color 0.15s ease,
    background-color 0.15s ease,
    transform 0.15s ease;
}

.pts-ticket-mic .icon {
  width: 1.2rem;
  height: 1.2rem;
}

.pts-ticket-mic:hover,
.pts-ticket-mic:focus-visible {
  color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 10%, transparent);
}

.pts-ticket-mic.is-listening {
  color: #fff;
  background: var(--tblr-danger, #d63939);
}

.pts-ticket-wave {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.12rem;
  min-width: 0;
  height: 2.1rem;
  padding: 0.2rem 0.15rem;
  border-radius: 0.55rem;
  opacity: 0.45;
  transition: opacity 0.18s ease;
}

.pts-ticket-wave.is-active {
  opacity: 1;
}

.pts-ticket-wave-bar {
  display: block;
  width: 0.14rem;
  height: 1.35rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--tblr-secondary, #667382) 70%, transparent);
  transform-origin: center center;
  transform: scaleY(0.12);
  transition: transform 0.05s linear, background-color 0.15s ease;
}

.pts-ticket-wave.is-active .pts-ticket-wave-bar {
  background: var(--tblr-danger, #d63939);
}

.pts-ticket-rec-dot {
  position: absolute;
  top: 0.45rem;
  inset-inline-end: 0.45rem;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 999px;
  background: var(--tblr-danger, #d63939);
  animation: pts-ticket-rec-pulse 1.1s ease-in-out infinite;
}

@keyframes pts-ticket-rec-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.35;
  }
}

.pts-ticket-description.is-listening {
  border-color: color-mix(in srgb, var(--tblr-danger, #d63939) 55%, var(--tblr-border-color));
  box-shadow: 0 0 0 0.15rem color-mix(in srgb, var(--tblr-danger, #d63939) 18%, transparent);
}

.pts-ticket-desc-field .form-control.pts-ticket-description {
  --pts-ticket-desc-lines: 8;
  min-height: calc(var(--pts-ticket-desc-lines) * 1.5em + 1.4rem);
  height: calc(var(--pts-ticket-desc-lines) * 1.5em + 1.4rem);
  max-height: 24rem;
  resize: vertical;
  line-height: 1.5;
  padding: 0.7rem 0.75rem;
  border-radius: calc(var(--tblr-border-radius) + 0.15rem);
  border: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 92%, transparent);
  background: var(--tblr-bg-surface, #fff);
  color: var(--tblr-body-color, #1e293b);
  -webkit-text-fill-color: var(--tblr-body-color, #1e293b);
  font-size: 0.9375rem;
  caret-color: var(--tblr-body-color, #1e293b);
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.pts-ticket-desc-field .form-control.pts-ticket-description::placeholder {
  color: color-mix(in srgb, var(--tblr-body-color) 48%, var(--tblr-secondary, #667382));
  -webkit-text-fill-color: color-mix(in srgb, var(--tblr-body-color) 48%, var(--tblr-secondary, #667382));
  opacity: 1;
}

.pts-ticket-description.is-invalid {
  border-color: color-mix(in srgb, var(--tblr-danger, #d63939) 55%, var(--tblr-border-color));
}

.pts-ticket-support-label {
  margin: 0 0 0.4rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--tblr-body-color, #1e293b);
}

.pts-ticket-support-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.35fr);
  gap: 0.65rem;
  align-items: stretch;
}

.pts-ticket-support-grid:not(:has(.pts-ticket-voice-wrap)) {
  grid-template-columns: 1fr;
}

.pts-ticket-drop {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  min-height: 5.25rem;
  height: 100%;
  padding: 0.8rem 0.85rem;
  border: 1px dashed color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 82%, var(--tblr-primary) 18%);
  border-radius: calc(var(--tblr-border-radius) + 0.15rem);
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, rgba(0, 0, 0, 0.03)) 75%, transparent);
  cursor: pointer;
  text-align: center;
  transition:
    border-color 0.15s ease,
    background-color 0.15s ease,
    box-shadow 0.15s ease,
    transform 0.15s ease;
}

.pts-ticket-drop-icon {
  width: 1.25rem;
  height: 1.25rem;
  color: var(--tblr-secondary, #667382);
  margin-bottom: 0.05rem;
  transition: color 0.15s ease;
}

.pts-ticket-drop:hover,
.pts-ticket-drop.is-dragging {
  border-color: color-mix(in srgb, var(--tblr-primary) 55%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 7%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tblr-primary) 10%, transparent);
}

.pts-ticket-drop:hover .pts-ticket-drop-icon,
.pts-ticket-drop.is-dragging .pts-ticket-drop-icon {
  color: var(--tblr-primary);
}

.pts-ticket-drop.is-disabled {
  opacity: 0.65;
  cursor: not-allowed;
  pointer-events: none;
}

.pts-ticket-drop-title {
  font-size: 0.875rem;
  font-weight: 600;
}

.pts-ticket-drop-hint {
  font-size: 0.75rem;
  color: var(--tblr-secondary, #667382);
  line-height: 1.35;
}

.pts-ticket-files {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
  max-height: 8rem;
  overflow: auto;
}

.pts-ticket-file-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.55rem;
  align-items: center;
  padding: 0.45rem 0.5rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 90%, transparent);
  border-radius: calc(var(--tblr-border-radius) + 0.05rem);
  background: var(--tblr-bg-surface, #fff);
  box-shadow: 0 0.05rem 0.15rem color-mix(in srgb, var(--tblr-body-color, #1e293b) 4%, transparent);
}

.pts-ticket-file-meta {
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  min-width: 0;
}

.pts-ticket-file-remove {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.85rem;
  height: 1.85rem;
  padding: 0;
  border: 0;
  border-radius: calc(var(--tblr-border-radius));
  color: var(--tblr-secondary, #667382);
  background: transparent;
  cursor: pointer;
  transition:
    color 0.15s ease,
    background-color 0.15s ease;
}

.pts-ticket-file-remove .icon {
  width: 0.9rem;
  height: 0.9rem;
}

.pts-ticket-file-remove:hover:not(:disabled) {
  color: var(--tblr-danger, #d63939);
  background: color-mix(in srgb, var(--tblr-danger, #d63939) 10%, transparent);
}

.pts-ticket-file-remove:focus-visible {
  outline: none;
  box-shadow: 0 0 0 0.15rem color-mix(in srgb, var(--tblr-primary) 22%, transparent);
}

.pts-ticket-file-icon {
  display: inline-flex;
  color: var(--tblr-secondary, #667382);
}

.pts-ticket-file-icon .icon {
  width: 1rem;
  height: 1rem;
}

.pts-ticket-file-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.8125rem;
  font-weight: 600;
}

.pts-ticket-file-size {
  font-size: 0.75rem;
  color: var(--tblr-secondary, #667382);
  white-space: nowrap;
}

.pts-ticket-toast {
  position: fixed;
  top: 4.5rem;
  right: 1rem;
  z-index: 1080;
  max-width: min(22rem, calc(100vw - 2rem));
  box-shadow: 0 0.35rem 1rem rgba(0, 0, 0, 0.12);
}

.pts-ticket-alert {
  margin-top: -0.15rem;
  padding: 0.55rem 0.65rem;
  border-radius: calc(var(--tblr-border-radius) + 0.05rem);
  border: 1px solid color-mix(in srgb, var(--tblr-danger, #d63939) 35%, transparent);
  background: color-mix(in srgb, var(--tblr-danger, #d63939) 8%, var(--tblr-bg-surface, #fff));
  color: var(--tblr-danger, #d63939);
  font-size: 0.8125rem;
  line-height: 1.35;
}

.pts-ticket-footer {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  border-top: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 92%, transparent);
  padding: 0.7rem 1.1rem;
  background: color-mix(in srgb, var(--tblr-bg-surface, #fff) 98%, var(--tblr-body-color, #1e293b) 2%);
}

.pts-ticket-footer-hint {
  min-width: 0;
  flex: 1 1 auto;
  font-size: 0.75rem;
  line-height: 1.35;
  color: var(--tblr-secondary, #667382);
}

.pts-ticket-footer-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  flex: 0 0 auto;
}

.pts-ticket-btn-cancel,
.pts-ticket-btn-submit {
  min-height: 2.35rem;
  min-width: 5.5rem;
  font-weight: 600;
}

.pts-ticket-btn-submit:disabled {
  opacity: 0.72;
}

/* Override global modal-footer space-between (primary left / dismiss right). */
.modal-footer.pts-ticket-footer:not(.pts-theme-footer) {
  justify-content: space-between;
}

.pts-ticket-notice {
  font-size: 0.875rem;
}

@media (max-width: 768px) {
  .pts-ticket-dialog {
    width: calc(100vw - 0.75rem);
    max-width: none;
    margin: 0.5rem auto;
  }

  .pts-ticket-modal {
    max-height: calc(100vh - 1rem);
    height: calc(100vh - 1rem);
    border-radius: calc(var(--tblr-border-radius) + 0.2rem);
  }

  .pts-ticket-header {
    padding: 0.85rem 0.9rem 0.75rem;
  }

  .pts-ticket-pane {
    padding: 0.85rem 0.9rem 0.95rem;
    gap: 0.95rem;
  }

  .pts-ticket-layout,
  .pts-ticket-layout-single {
    grid-template-columns: 1fr;
  }

  .pts-ticket-type-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pts-ticket-support-grid {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .pts-ticket-voice,
  .pts-ticket-drop {
    min-height: 4.75rem;
  }

  .pts-ticket-desc-field .form-control.pts-ticket-description {
    --pts-ticket-desc-lines: 6;
    min-height: calc(var(--pts-ticket-desc-lines) * 1.5em + 1.4rem);
    height: calc(var(--pts-ticket-desc-lines) * 1.5em + 1.4rem);
    max-height: 18rem;
  }

  .pts-ticket-type-card {
    min-height: 2.75rem;
  }

  .pts-ticket-footer {
    flex-wrap: wrap;
    padding: 0.65rem 0.9rem;
  }

  .pts-ticket-footer-hint {
    flex: 1 1 100%;
  }

  .pts-ticket-footer-actions {
    width: 100%;
  }

  .pts-ticket-btn-cancel,
  .pts-ticket-btn-submit {
    flex: 1 1 auto;
  }
}

@media (max-width: 520px) {
  .pts-ticket-type-grid {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .modal.show .pts-ticket-dialog {
    animation: none;
  }

  .pts-ticket-type-card,
  .pts-ticket-voice,
  .pts-ticket-drop,
  .pts-ticket-close,
  .pts-ticket-mic,
  .pts-ticket-description {
    transition: none;
  }
}

[data-bs-theme="dark"] .page-header .page-title,
[data-bs-theme="dark"] .page-header .pts-page-title,
[data-bs-theme="dark"] .pts-page-header .page-title,
[data-bs-theme="dark"] .pts-page-header .pts-page-title,
[data-bs-theme="dark"] .pts-manage-section-head h2 {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

/* Pretitle removed from page headers — keep CSS inert if legacy markup appears. */
.page-header .page-pretitle,
.pts-page-header .page-pretitle {
  display: none !important;
}

[data-bs-theme-primary-tone="vivid"] .page-header .page-title,
[data-bs-theme-primary-tone="vivid"] .page-header .pts-page-title,
[data-bs-theme-primary-tone="vivid"] .pts-manage-section-head h2 {
  color: #000 !important;
  background: none !important;
  -webkit-text-fill-color: #000 !important;
  filter: none !important;
}

[data-bs-theme="dark"][data-bs-theme-primary-tone="vivid"] .page-header .page-title,
[data-bs-theme="dark"][data-bs-theme-primary-tone="vivid"] .page-header .pts-page-title,
[data-bs-theme="dark"][data-bs-theme-primary-tone="vivid"] .pts-manage-section-head h2 {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

[data-bs-theme-primary-tone="pale"] .page-header .page-title,
[data-bs-theme-primary-tone="pale"] .page-header .pts-page-title,
[data-bs-theme-primary-tone="pale"] .pts-manage-section-head h2 {
  background: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  -webkit-text-fill-color: #000 !important;
  color: #000 !important;
  font-weight: 600;
  filter: none !important;
}

[data-bs-theme="dark"][data-bs-theme-primary-tone="pale"] .page-header .page-title,
[data-bs-theme="dark"][data-bs-theme-primary-tone="pale"] .page-header .pts-page-title,
[data-bs-theme="dark"][data-bs-theme-primary-tone="pale"] .pts-manage-section-head h2 {
  background: none !important;
  -webkit-text-fill-color: #fff !important;
  color: #fff !important;
  filter: none !important;
}

[data-bs-theme-primary-tone="deep"] .page-header .page-title,
[data-bs-theme-primary-tone="deep"] .page-header .pts-page-title,
[data-bs-theme-primary-tone="deep"] .pts-manage-section-head h2 {
  background: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  -webkit-text-fill-color: #000 !important;
  color: #000 !important;
  font-weight: 600;
  filter: none !important;
}

[data-bs-theme="dark"][data-bs-theme-primary-tone="deep"] .page-header .page-title,
[data-bs-theme="dark"][data-bs-theme-primary-tone="deep"] .page-header .pts-page-title,
[data-bs-theme="dark"][data-bs-theme-primary-tone="deep"] .pts-manage-section-head h2 {
  background: none !important;
  -webkit-text-fill-color: #fff !important;
  color: #fff !important;
  filter: none !important;
}

.page-header .page-pretitle {
  display: none !important;
}

[data-bs-theme-primary-tone="deep"] .page-header .page-pretitle {
  display: none !important;
}

[data-bs-theme-primary-tone="pale"] .page-header .page-pretitle {
  display: none !important;
}

[data-bs-theme="dark"][data-bs-theme-primary-tone="deep"] .page-header .page-pretitle {
  display: none !important;
}

/* Dark chrome (combo sidebar / dark navbar): keep brand readable */
.navbar[data-bs-theme="dark"] .pts-brand-wordmark-pts {
  color: color-mix(in srgb, #fff 92%, var(--tblr-primary) 8%);
}

[data-bs-theme="dark"] .pts-brand-wordmark-flex,
.navbar[data-bs-theme="dark"] .pts-brand-wordmark-flex,
[data-bs-theme="dark"] .pts-footer-brand-flex {
  color: color-mix(in srgb, var(--tblr-primary) 72%, #fff);
}

[data-bs-theme-base="slate"] { --tblr-gray-50:#f8fafc;--tblr-gray-100:#f1f5f9;--tblr-gray-200:#e2e8f0;--tblr-gray-300:#cbd5e1;--tblr-gray-400:#94a3b8;--tblr-gray-500:#64748b;--tblr-gray-600:#475569;--tblr-gray-700:#334155;--tblr-gray-800:#1e293b;--tblr-gray-900:#0f172a;--tblr-gray-950:#020617; }
[data-bs-theme-base="gray"] { --tblr-gray-50:#f9fafb;--tblr-gray-100:#f3f4f6;--tblr-gray-200:#e5e7eb;--tblr-gray-300:#d1d5db;--tblr-gray-400:#9ca3af;--tblr-gray-500:#6b7280;--tblr-gray-600:#4b5563;--tblr-gray-700:#374151;--tblr-gray-800:#1f2937;--tblr-gray-900:#111827;--tblr-gray-950:#030712; }
[data-bs-theme-base="zinc"] { --tblr-gray-50:#fafafa;--tblr-gray-100:#f4f4f5;--tblr-gray-200:#e4e4e7;--tblr-gray-300:#d4d4d8;--tblr-gray-400:#a1a1aa;--tblr-gray-500:#71717a;--tblr-gray-600:#52525b;--tblr-gray-700:#3f3f46;--tblr-gray-800:#27272a;--tblr-gray-900:#18181b;--tblr-gray-950:#09090b; }
[data-bs-theme-base="neutral"] { --tblr-gray-50:#fafafa;--tblr-gray-100:#f5f5f5;--tblr-gray-200:#e5e5e5;--tblr-gray-300:#d4d4d4;--tblr-gray-400:#a3a3a3;--tblr-gray-500:#737373;--tblr-gray-600:#525252;--tblr-gray-700:#404040;--tblr-gray-800:#262626;--tblr-gray-900:#171717;--tblr-gray-950:#0a0a0a; }
[data-bs-theme-base="stone"] { --tblr-gray-50:#fafaf9;--tblr-gray-100:#f5f5f4;--tblr-gray-200:#e7e5e4;--tblr-gray-300:#d6d3d1;--tblr-gray-400:#a8a29e;--tblr-gray-500:#78716c;--tblr-gray-600:#57534e;--tblr-gray-700:#44403c;--tblr-gray-800:#292524;--tblr-gray-900:#1c1917;--tblr-gray-950:#0c0a09; }
[data-bs-theme-base="red"] { --tblr-gray-50:#fef2f2;--tblr-gray-100:#fee2e2;--tblr-gray-200:#fecaca;--tblr-gray-300:#fca5a5;--tblr-gray-400:#f87171;--tblr-gray-500:#ef4444;--tblr-gray-600:#dc2626;--tblr-gray-700:#b91c1c;--tblr-gray-800:#991b1b;--tblr-gray-900:#7f1d1d;--tblr-gray-950:#450a0a; }
[data-bs-theme-base="orange"] { --tblr-gray-50:#fff7ed;--tblr-gray-100:#ffedd5;--tblr-gray-200:#fed7aa;--tblr-gray-300:#fdba74;--tblr-gray-400:#fb923c;--tblr-gray-500:#f97316;--tblr-gray-600:#ea580c;--tblr-gray-700:#c2410c;--tblr-gray-800:#9a3412;--tblr-gray-900:#7c2d12;--tblr-gray-950:#431407; }
[data-bs-theme-base="amber"] { --tblr-gray-50:#fffbeb;--tblr-gray-100:#fef3c7;--tblr-gray-200:#fde68a;--tblr-gray-300:#fcd34d;--tblr-gray-400:#fbbf24;--tblr-gray-500:#f59e0b;--tblr-gray-600:#d97706;--tblr-gray-700:#b45309;--tblr-gray-800:#92400e;--tblr-gray-900:#78350f;--tblr-gray-950:#451a03; }
[data-bs-theme-base="yellow"] { --tblr-gray-50:#fefce8;--tblr-gray-100:#fef9c3;--tblr-gray-200:#fef08a;--tblr-gray-300:#fde047;--tblr-gray-400:#facc15;--tblr-gray-500:#eab308;--tblr-gray-600:#ca8a04;--tblr-gray-700:#a16207;--tblr-gray-800:#854d0e;--tblr-gray-900:#713f12;--tblr-gray-950:#422006; }
[data-bs-theme-base="lime"] { --tblr-gray-50:#f7fee7;--tblr-gray-100:#ecfccb;--tblr-gray-200:#d9f99d;--tblr-gray-300:#bef264;--tblr-gray-400:#a3e635;--tblr-gray-500:#84cc16;--tblr-gray-600:#65a30d;--tblr-gray-700:#4d7c0f;--tblr-gray-800:#3f6212;--tblr-gray-900:#365314;--tblr-gray-950:#1a2e05; }
[data-bs-theme-base="green"] { --tblr-gray-50:#f0fdf4;--tblr-gray-100:#dcfce7;--tblr-gray-200:#bbf7d0;--tblr-gray-300:#86efac;--tblr-gray-400:#4ade80;--tblr-gray-500:#22c55e;--tblr-gray-600:#16a34a;--tblr-gray-700:#15803d;--tblr-gray-800:#166534;--tblr-gray-900:#14532d;--tblr-gray-950:#052e16; }
[data-bs-theme-base="emerald"] { --tblr-gray-50:#ecfdf5;--tblr-gray-100:#d1fae5;--tblr-gray-200:#a7f3d0;--tblr-gray-300:#6ee7b7;--tblr-gray-400:#34d399;--tblr-gray-500:#10b981;--tblr-gray-600:#059669;--tblr-gray-700:#047857;--tblr-gray-800:#065f46;--tblr-gray-900:#064e3b;--tblr-gray-950:#022c22; }
[data-bs-theme-base="teal"] { --tblr-gray-50:#f0fdfa;--tblr-gray-100:#ccfbf1;--tblr-gray-200:#99f6e4;--tblr-gray-300:#5eead4;--tblr-gray-400:#2dd4bf;--tblr-gray-500:#14b8a6;--tblr-gray-600:#0d9488;--tblr-gray-700:#0f766e;--tblr-gray-800:#115e59;--tblr-gray-900:#134e4a;--tblr-gray-950:#042f2e; }
[data-bs-theme-base="cyan"] { --tblr-gray-50:#ecfeff;--tblr-gray-100:#cffafe;--tblr-gray-200:#a5f3fc;--tblr-gray-300:#67e8f9;--tblr-gray-400:#22d3ee;--tblr-gray-500:#06b6d4;--tblr-gray-600:#0891b2;--tblr-gray-700:#0e7490;--tblr-gray-800:#155e75;--tblr-gray-900:#164e63;--tblr-gray-950:#083344; }
[data-bs-theme-base="sky"] { --tblr-gray-50:#f0f9ff;--tblr-gray-100:#e0f2fe;--tblr-gray-200:#bae6fd;--tblr-gray-300:#7dd3fc;--tblr-gray-400:#38bdf8;--tblr-gray-500:#0ea5e9;--tblr-gray-600:#0284c7;--tblr-gray-700:#0369a1;--tblr-gray-800:#075985;--tblr-gray-900:#0c4a6e;--tblr-gray-950:#082f49; }
[data-bs-theme-base="blue"] { --tblr-gray-50:#eff6ff;--tblr-gray-100:#dbeafe;--tblr-gray-200:#bfdbfe;--tblr-gray-300:#93c5fd;--tblr-gray-400:#60a5fa;--tblr-gray-500:#3b82f6;--tblr-gray-600:#2563eb;--tblr-gray-700:#1d4ed8;--tblr-gray-800:#1e40af;--tblr-gray-900:#1e3a8a;--tblr-gray-950:#172554; }
[data-bs-theme-base="indigo"] { --tblr-gray-50:#eef2ff;--tblr-gray-100:#e0e7ff;--tblr-gray-200:#c7d2fe;--tblr-gray-300:#a5b4fc;--tblr-gray-400:#818cf8;--tblr-gray-500:#6366f1;--tblr-gray-600:#4f46e5;--tblr-gray-700:#4338ca;--tblr-gray-800:#3730a3;--tblr-gray-900:#312e81;--tblr-gray-950:#1e1b4b; }
[data-bs-theme-base="violet"] { --tblr-gray-50:#f5f3ff;--tblr-gray-100:#ede9fe;--tblr-gray-200:#ddd6fe;--tblr-gray-300:#c4b5fd;--tblr-gray-400:#a78bfa;--tblr-gray-500:#8b5cf6;--tblr-gray-600:#7c3aed;--tblr-gray-700:#6d28d9;--tblr-gray-800:#5b21b6;--tblr-gray-900:#4c1d95;--tblr-gray-950:#2e1065; }
[data-bs-theme-base="purple"] { --tblr-gray-50:#faf5ff;--tblr-gray-100:#f3e8ff;--tblr-gray-200:#e9d5ff;--tblr-gray-300:#d8b4fe;--tblr-gray-400:#c084fc;--tblr-gray-500:#a855f7;--tblr-gray-600:#9333ea;--tblr-gray-700:#7e22ce;--tblr-gray-800:#6b21a8;--tblr-gray-900:#581c87;--tblr-gray-950:#3b0764; }
[data-bs-theme-base="fuchsia"] { --tblr-gray-50:#fdf4ff;--tblr-gray-100:#fae8ff;--tblr-gray-200:#f5d0fe;--tblr-gray-300:#f0abfc;--tblr-gray-400:#e879f9;--tblr-gray-500:#d946ef;--tblr-gray-600:#c026d3;--tblr-gray-700:#a21caf;--tblr-gray-800:#86198f;--tblr-gray-900:#701a75;--tblr-gray-950:#4a044e; }
[data-bs-theme-base="pink"] { --tblr-gray-50:#fdf2f8;--tblr-gray-100:#fce7f3;--tblr-gray-200:#fbcfe8;--tblr-gray-300:#f9a8d4;--tblr-gray-400:#f472b6;--tblr-gray-500:#ec4899;--tblr-gray-600:#db2777;--tblr-gray-700:#be185d;--tblr-gray-800:#9d174d;--tblr-gray-900:#831843;--tblr-gray-950:#500724; }
[data-bs-theme-base="rose"] { --tblr-gray-50:#fff1f2;--tblr-gray-100:#ffe4e6;--tblr-gray-200:#fecdd3;--tblr-gray-300:#fda4af;--tblr-gray-400:#fb7185;--tblr-gray-500:#f43f5e;--tblr-gray-600:#e11d48;--tblr-gray-700:#be123c;--tblr-gray-800:#9f1239;--tblr-gray-900:#881337;--tblr-gray-950:#4c0519; }

[data-bs-theme-base] {
  --tblr-gray: var(--tblr-gray-600);
  --tblr-gray-dark: var(--tblr-gray-800);
  --tblr-secondary: var(--tblr-gray-600);
  --tblr-muted: var(--tblr-gray-600);
  --tblr-dark: var(--tblr-gray-800);
  --tblr-icon-color: var(--tblr-gray-500);
}

[data-bs-theme="light"][data-bs-theme-base] {
  --tblr-body-bg: var(--tblr-gray-100);
  --tblr-body-color: var(--tblr-gray-800);
  --tblr-emphasis-color: var(--tblr-gray-800);
  --tblr-secondary-color: color-mix(in srgb, var(--tblr-gray-800) 75%, transparent);
  --tblr-secondary-bg: var(--tblr-gray-200);
  --tblr-tertiary-color: color-mix(in srgb, var(--tblr-gray-800) 50%, transparent);
  --tblr-tertiary-bg: var(--tblr-gray-100);
  --tblr-border-color: var(--tblr-gray-300);
  --tblr-border-color-translucent: color-mix(in srgb, var(--tblr-gray-800) 14%, transparent);
  --tblr-border-dark-color: var(--tblr-gray-400);
  --tblr-bg-surface: #ffffff;
  --tblr-bg-surface-secondary: var(--tblr-gray-100);
  --tblr-bg-surface-tertiary: var(--tblr-gray-50);
  --tblr-bg-surface-dark: var(--tblr-gray-800);
  --tblr-bg-forms: #ffffff;
  --tblr-card-bg: #ffffff;
  --tblr-navbar-bg: #ffffff;
  --tblr-code-bg: var(--tblr-gray-100);
  --tblr-code-color: var(--tblr-gray-600);
  --tblr-disabled-color: var(--tblr-gray-300);
  --tblr-disabled-bg: var(--tblr-gray-100);
  --tblr-heading-color: var(--tblr-gray-800);
  --tblr-icon-color: var(--tblr-gray-500);
}

[data-bs-theme="dark"][data-bs-theme-base] {
  --tblr-body-bg: var(--tblr-gray-900);
  --tblr-body-color: var(--tblr-gray-100);
  --tblr-emphasis-color: #ffffff;
  --tblr-secondary: var(--tblr-gray-400);
  --tblr-muted: var(--tblr-gray-400);
  --tblr-secondary-color: color-mix(in srgb, var(--tblr-gray-100) 75%, transparent);
  --tblr-secondary-bg: var(--tblr-gray-800);
  --tblr-tertiary-color: color-mix(in srgb, var(--tblr-gray-100) 50%, transparent);
  --tblr-tertiary-bg: var(--tblr-gray-950);
  --tblr-border-color: var(--tblr-gray-700);
  --tblr-border-color-translucent: color-mix(in srgb, var(--tblr-gray-400) 22%, transparent);
  --tblr-border-dark-color: var(--tblr-gray-700);
  --tblr-bg-surface: var(--tblr-gray-800);
  --tblr-bg-surface-secondary: color-mix(in srgb, var(--tblr-gray-800) 72%, var(--tblr-gray-700));
  --tblr-bg-surface-tertiary: var(--tblr-gray-900);
  --tblr-bg-surface-dark: var(--tblr-gray-950);
  --tblr-bg-forms: var(--tblr-gray-800);
  --tblr-card-bg: var(--tblr-gray-800);
  --tblr-navbar-bg: var(--tblr-gray-800);
  --tblr-code-bg: var(--tblr-gray-800);
  --tblr-code-color: var(--tblr-gray-100);
  --tblr-disabled-color: var(--tblr-gray-700);
  --tblr-disabled-bg: var(--tblr-gray-800);
  --tblr-heading-color: var(--tblr-gray-100);
  --tblr-icon-color: var(--tblr-gray-400);
  --tblr-dark-mode-border-color: var(--tblr-gray-700);
  --tblr-dark-mode-border-color-translucent: color-mix(in srgb, var(--tblr-gray-400) 22%, transparent);
  --tblr-dark-mode-border-color-active: var(--tblr-gray-600);
}

[data-bs-theme-radius="0"] { --tblr-border-radius: 0; --tblr-border-radius-sm: 0; --tblr-border-radius-lg: 0; --tblr-border-radius-xl: 0; --tblr-border-radius-xxl: 0; --tblr-theme-boxed-border-radius: 0; }
[data-bs-theme-radius="2"] { --tblr-border-radius: 8px; --tblr-border-radius-sm: 4px; --tblr-border-radius-lg: 16px; --tblr-border-radius-xl: 2rem; --tblr-border-radius-xxl: 4rem; }
[data-bs-theme-radius="3"] { --tblr-border-radius: 12px; --tblr-border-radius-sm: 6px; --tblr-border-radius-lg: 24px; --tblr-border-radius-xl: 3rem; --tblr-border-radius-xxl: 6rem; }
[data-bs-theme-radius="4"] { --tblr-border-radius: 16px; --tblr-border-radius-sm: 8px; --tblr-border-radius-lg: 32px; --tblr-border-radius-xl: 4rem; --tblr-border-radius-xxl: 8rem; }

[data-bs-theme="dark"] .navbar-brand-autodark .navbar-brand-image,
.navbar[data-bs-theme="dark"] .navbar-brand-autodark .navbar-brand-image {
  filter: none;
}

.pts-brand-light { display: inline-block; }
.pts-brand-dark { display: none; }
[data-bs-theme="dark"] .pts-brand-light,
.navbar[data-bs-theme="dark"] .pts-brand-light {
  display: none;
}
[data-bs-theme="dark"] .pts-brand-dark,
.navbar[data-bs-theme="dark"] .pts-brand-dark {
  display: inline-block;
}

/* Text brand mark — layout only; colors come from typography block (Theme Base + Color Scheme) */
.pts-brand-wordmark {
  display: inline-flex;
  align-items: baseline;
  gap: 0;
  font-size: 1.7rem;
  line-height: 1;
  font-weight: 750;
  letter-spacing: -0.04em;
  user-select: none;
  white-space: nowrap;
  text-decoration: none !important;
  transition: color 0.2s ease, opacity 0.2s ease;
}

.pts-brand-wordmark-pts {
  font-weight: 720;
}

.pts-brand-wordmark-flex {
  font-weight: 780;
  letter-spacing: -0.035em;
}

a:hover .pts-brand-wordmark {
  opacity: 0.92;
}

/* Icons follow Theme Base + Color Scheme */
.icon {
  color: inherit;
  stroke: currentColor !important;
}

.nav-link-icon,
.dropdown-item-icon,
.pts-manage-nav-icon,
.input-icon-addon,
.pts-inbox-empty .icon,
.empty-icon,
.empty .empty-icon,
.btn-icon:not(.btn-primary):not(.btn-danger):not(.btn-success):not(.btn-warning):not(.btn-info) .icon,
.table .btn-icon .icon,
.pts-node-icon .icon,
.pts-node-icon,
.list-group-item .nav-link-icon,
.pts-manage-nav .nav-link-icon {
  color: var(--tblr-icon-color);
}

.nav-link-icon .icon,
.dropdown-item-icon,
.pts-manage-nav-icon .icon,
.list-group-item .nav-link-icon .icon,
.pts-manage-nav .nav-link-icon .icon {
  color: inherit;
  stroke: currentColor !important;
}

.nav-link:hover .nav-link-icon,
.nav-link.active .nav-link-icon,
.nav-item.active > .nav-link .nav-link-icon,
.dropdown-item:hover .dropdown-item-icon,
.dropdown-item.active .dropdown-item-icon,
.pts-manage-nav-item:hover .pts-manage-nav-icon,
.pts-manage-nav-item.active .pts-manage-nav-icon,
.list-group-item:hover .nav-link-icon,
.list-group-item:hover .pts-manage-nav-icon,
.pts-manage-nav .list-group-item:hover .nav-link-icon,
.btn-icon:not(.btn-primary):not(.btn-danger):hover .icon,
.btn-icon:not(.btn-primary):not(.btn-danger):focus-visible .icon,
.table .btn-icon:hover .icon {
  color: var(--tblr-primary);
}

.list-group-item.active .nav-link-icon,
.list-group-item.active .pts-manage-nav-icon,
.pts-manage-nav .list-group-item.active .nav-link-icon {
  color: var(--tblr-primary);
}

.pts-manage-nav .list-group-transparent .list-group-item.active .nav-link-icon,
.list-group-transparent .list-group-item.active .nav-link-icon {
  color: color-mix(in srgb, var(--tblr-primary) 82%, #fff);
}

[data-bs-theme="dark"] .pts-manage-nav .list-group-transparent .list-group-item.active .nav-link-icon,
[data-bs-theme="dark"] .list-group-transparent .list-group-item.active .nav-link-icon {
  color: color-mix(in srgb, var(--tblr-primary) 70%, #fff);
}

.navbar[data-bs-theme="dark"] {
  --tblr-icon-color: color-mix(in srgb, #fff 58%, transparent);
}

.navbar[data-bs-theme="dark"] .nav-link:hover .nav-link-icon,
.navbar[data-bs-theme="dark"] .nav-link.active .nav-link-icon,
.navbar[data-bs-theme="dark"] .nav-item.active > .nav-link .nav-link-icon {
  color: color-mix(in srgb, var(--tblr-primary) 72%, #fff);
}

/* Category / manage side nav icons — boxed like chrome icons */
.pts-manage-nav .list-group-item .nav-link-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  flex: 0 0 auto;
  border-radius: calc(var(--tblr-border-radius) + 0.05rem);
  background: color-mix(in srgb, var(--tblr-primary) 6%, transparent);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-border-color));
  transition: color 0.16s ease, background-color 0.16s ease, border-color 0.16s ease;
}

.pts-manage-nav .list-group-item .nav-link-icon .icon {
  width: 1rem !important;
  height: 1rem !important;
  stroke-width: 1.5;
}

.pts-manage-nav .list-group-item:hover .nav-link-icon,
.pts-manage-nav .list-group-item.active .nav-link-icon {
  background: color-mix(in srgb, var(--tblr-primary) 14%, transparent);
  border-color: color-mix(in srgb, var(--tblr-primary) 28%, var(--tblr-border-color));
}

.pts-manage-nav-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  flex: 0 0 auto;
  border-radius: calc(var(--tblr-border-radius) + 0.05rem);
  background: color-mix(in srgb, var(--tblr-primary) 6%, transparent);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-border-color));
}

.pts-manage-nav-item:hover .pts-manage-nav-icon,
.pts-manage-nav-item.active .pts-manage-nav-icon {
  background: color-mix(in srgb, var(--tblr-primary) 14%, transparent);
  border-color: color-mix(in srgb, var(--tblr-primary) 28%, var(--tblr-border-color));
}

.pts-inbox-menu {
  display: flex;
  flex-direction: column;
  min-width: 18rem;
  max-width: min(22rem, calc(100vw - 1.5rem));
  padding: 0;
  overflow: hidden;
}

.pts-inbox-head {
  flex: 0 0 auto;
  padding: 0.75rem 1rem 0.65rem;
}

.pts-inbox-body {
  flex: 1 1 auto;
  min-height: 7.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1rem 1rem;
}

.pts-inbox-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 0.15rem;
  color: var(--tblr-secondary);
}

.pts-inbox-empty .icon {
  width: 1.75rem !important;
  height: 1.75rem !important;
  margin-bottom: 0.35rem;
  color: color-mix(in srgb, var(--tblr-primary) 55%, var(--tblr-icon-color));
  stroke: currentColor !important;
}

.pts-inbox-foot {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 0.85rem;
  border-top: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, var(--tblr-bg-surface)) 70%, var(--tblr-bg-surface));
}

.pts-inbox-foot-link {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0.2rem 0.45rem;
  margin: 0;
  color: var(--tblr-primary);
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
  cursor: pointer;
}

.pts-inbox-foot-link:hover,
.pts-inbox-foot-link:focus-visible {
  text-decoration: underline;
  color: var(--tblr-primary);
}

.btn-icon:not(.btn-primary):not(.btn-danger):not(.btn-success) {
  color: var(--tblr-icon-color);
}

.btn-icon:not(.btn-primary):not(.btn-danger):not(.btn-success):hover,
.btn-icon:not(.btn-primary):not(.btn-danger):not(.btn-success):focus-visible {
  color: var(--tblr-primary);
}

/* Header tools — Color Scheme bound */
.pts-header-tools {
  --pts-header-icon-size: 1.2rem;
  --pts-header-hit: 2.15rem;
  --pts-header-icon-color: var(--tblr-icon-color);
  --pts-header-icon-hover: var(--tblr-primary);
  align-items: center;
  gap: 0.1rem;
}

.navbar[data-bs-theme="dark"] .pts-header-tools {
  --pts-header-icon-color: color-mix(in srgb, #fff 62%, transparent);
  --pts-header-icon-hover: color-mix(in srgb, var(--tblr-primary) 72%, #fff);
}

.pts-header-tools > .nav-item {
  display: flex;
  align-items: center;
}

.pts-header-tools > .nav-item > .nav-link,
.pts-header-tools > .nav-item > a.nav-link {
  width: var(--pts-header-hit);
  height: var(--pts-header-hit);
  min-width: var(--pts-header-hit);
  min-height: var(--pts-header-hit);
  padding: 0 !important;
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--pts-header-icon-color) !important;
  background: transparent;
  border: 0;
  border-radius: calc(var(--tblr-border-radius) + 0.1rem);
  box-shadow: none;
  text-decoration: none;
  transition: color 0.18s ease, background-color 0.18s ease;
}

.pts-header-tools > .nav-item > .nav-link:hover,
.pts-header-tools > .nav-item > .nav-link:focus-visible,
.pts-header-tools > .nav-item > a.nav-link:hover,
.pts-header-tools > .nav-item > a.nav-link:focus-visible {
  color: var(--pts-header-icon-hover) !important;
  background: color-mix(in srgb, var(--tblr-primary) 10%, transparent);
}

.pts-header-tools > .nav-item.show > .nav-link {
  color: var(--pts-header-icon-hover) !important;
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
}

.pts-header-tools .nav-link .icon {
  width: var(--pts-header-icon-size) !important;
  height: var(--pts-header-icon-size) !important;
  font-size: var(--pts-header-icon-size);
  stroke-width: 1.5;
  stroke: currentColor !important;
  color: inherit;
  flex-shrink: 0;
  display: block;
  opacity: 1;
}

.pts-header-tools > .nav-item.dropdown:last-child {
  margin-left: 0.35rem;
  padding-left: 0.45rem;
  border-left: 1px solid color-mix(in srgb, var(--tblr-border-color) 85%, transparent);
}

.navbar[data-bs-theme="dark"] .pts-header-tools > .nav-item.dropdown:last-child {
  border-left-color: color-mix(in srgb, #fff 16%, transparent);
}

.pts-header-tools .avatar.avatar-sm {
  --tblr-avatar-size: 1.85rem;
  width: var(--tblr-avatar-size);
  height: var(--tblr-avatar-size);
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  line-height: var(--tblr-avatar-size);
  color: var(--tblr-primary) !important;
  background: color-mix(in srgb, var(--tblr-primary) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 22%, transparent);
  box-shadow: none;
}

.pts-header-tools > .nav-item.dropdown:last-child > .nav-link:hover .avatar,
.pts-header-tools > .nav-item.dropdown:last-child.show > .nav-link .avatar {
  background: color-mix(in srgb, var(--tblr-primary) 20%, transparent);
  border-color: color-mix(in srgb, var(--tblr-primary) 36%, transparent);
}

.pts-notifications-empty {
  padding: 2.5rem 1rem;
}

.pts-notifications-list {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.pts-notifications-row {
  display: block;
  width: 100%;
  padding: 0.9rem 1rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 92%, transparent);
  border-radius: var(--tblr-border-radius);
  background: var(--tblr-bg-surface);
  color: inherit;
  text-align: left;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.pts-notifications-row:hover,
.pts-notifications-row:focus-visible {
  border-color: color-mix(in srgb, var(--tblr-primary) 34%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 4%, var(--tblr-bg-surface));
}

.pts-notifications-row-copy {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

@media (max-width: 575.98px) {
  .pts-header-tools {
    --pts-header-hit: 2rem;
    --pts-header-icon-size: 1.15rem;
  }

  .pts-header-tools > .nav-item.dropdown:last-child {
    margin-left: 0.2rem;
    padding-left: 0.3rem;
  }
}

/* Page header actions — Color Scheme bound */
.pts-page-actions {
  --pts-page-action-size: 2.15rem;
  --pts-page-action-icon: 1.15rem;
  --pts-page-action-color: var(--tblr-icon-color);
  --pts-page-action-hover: var(--tblr-primary);
  --pts-page-action-border: color-mix(in srgb, var(--tblr-border-color) 92%, transparent);
  --tblr-list-gap: 0.35rem;
  align-items: center;
}

.pts-page-toolbar {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-right: 0.15rem;
}

.pts-acc-plan-detail {
  --pts-acc-plan-house-col: minmax(13rem, 16.5rem);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-height: 0;
}

.pts-acc-plan-board[data-view="default"] .pts-acc-plan-row {
  grid-template-columns: minmax(0, 1fr);
}

.pts-acc-plan-toolbar {
  display: grid;
  grid-template-columns: var(--pts-acc-plan-house-col) minmax(0, 1fr);
  gap: 0.55rem;
  align-items: center;
  flex: 0 0 auto;
}

.pts-acc-plan-operator-select {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.pts-acc-plan-operator-select,
.pts-acc-plan-sort-trigger,
.pts-acc-plan-view-trigger,
.pts-acc-plan-search .form-control {
  min-height: 2.35rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 16%, var(--tblr-border-color));
  border-radius: calc(var(--tblr-border-radius) + 0.1rem);
  background-color: var(--tblr-bg-surface);
  color: var(--tblr-body-color);
  box-shadow: none;
  transition:
    border-color 0.16s ease,
    box-shadow 0.16s ease,
    background-color 0.16s ease;
}

.pts-acc-plan-operator-select:hover,
.pts-acc-plan-sort-trigger:hover,
.pts-acc-plan-view-trigger:hover,
.pts-acc-plan-search .form-control:hover {
  border-color: color-mix(in srgb, var(--tblr-primary) 28%, var(--tblr-border-color));
}

.pts-acc-plan-operator-select:focus,
.pts-acc-plan-sort-trigger:focus,
.pts-acc-plan-sort-trigger:focus-visible,
.pts-acc-plan-view-trigger:focus,
.pts-acc-plan-view-trigger:focus-visible,
.pts-acc-plan-search .form-control:focus {
  border-color: color-mix(in srgb, var(--tblr-primary) 48%, var(--tblr-border-color));
  background-color: var(--tblr-bg-surface);
  color: var(--tblr-body-color);
  box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--tblr-primary) 16%, transparent);
  outline: none;
}

[data-bs-theme="dark"] .pts-acc-plan-operator-select,
[data-bs-theme="dark"] .pts-acc-plan-sort-trigger,
[data-bs-theme="dark"] .pts-acc-plan-view-trigger,
[data-bs-theme="dark"] .pts-acc-plan-search .form-control {
  background-color: var(--tblr-bg-surface);
  border-color: color-mix(in srgb, var(--tblr-primary) 22%, var(--tblr-border-color));
}

.pts-acc-plan-search {
  margin-left: 0;
  display: block;
  min-width: 0;
  max-width: none;
  flex: 1 1 0;
  width: 100%;
}

.pts-acc-plan-search .form-control {
  width: 100%;
  min-width: 0;
}

.pts-acc-plan-toolbar-end {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
  min-width: 0;
  width: 100%;
}

.pts-acc-plan-sort-dropdown {
  position: relative;
  width: auto;
  min-width: 13.5rem;
  max-width: 100%;
  flex: 0 0 auto;
}

.pts-acc-plan-view-dropdown {
  position: relative;
  width: auto;
  min-width: 11.5rem;
  max-width: 100%;
  flex: 0 0 auto;
}

.pts-acc-plan-sort-trigger,
.pts-acc-plan-view-trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  width: 100%;
  min-width: 13.5rem;
  padding: 0.35rem 0.65rem;
  text-align: left;
  appearance: none;
  cursor: pointer;
}

.pts-acc-plan-view-trigger {
  min-width: 11.5rem;
}

.pts-acc-plan-sort-trigger-label {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.85rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pts-acc-plan-view-trigger-label {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.85rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pts-acc-plan-view-icon {
  width: 1rem !important;
  height: 1rem !important;
  flex: 0 0 auto;
  color: var(--tblr-primary);
  stroke: currentColor !important;
}

.pts-acc-plan-view-chevron {
  width: 0.95rem !important;
  height: 0.95rem !important;
  flex: 0 0 auto;
  opacity: 0.7;
  stroke: currentColor !important;
  transition: transform 0.16s ease;
}

.pts-acc-plan-view-dropdown.show .pts-acc-plan-view-chevron {
  transform: rotate(180deg);
}

.pts-acc-plan-view-menu {
  --tblr-dropdown-min-width: 13.5rem;
  width: max(13.5rem, 100%);
  max-height: 16rem;
  overflow: auto;
  padding: 0.3rem;
  z-index: 40;
}

.pts-acc-plan-view-item {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.55rem !important;
  width: 100%;
  padding: 0.45rem 0.55rem !important;
  border-radius: calc(var(--tblr-border-radius) + 0.05rem);
  white-space: nowrap;
}

.pts-acc-plan-view-item-label {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pts-acc-plan-view-check,
.pts-acc-plan-view-check-slot {
  width: 0.9rem !important;
  height: 0.9rem !important;
  flex: 0 0 auto;
}

.pts-acc-plan-view-check {
  color: var(--tblr-primary);
  stroke: currentColor !important;
}

.pts-acc-plan-sort-icons {
  display: inline-flex;
  align-items: center;
  gap: 0.12rem;
  flex: 0 0 auto;
  color: var(--tblr-primary);
}

.pts-acc-plan-sort-icon-main {
  width: 1rem !important;
  height: 1rem !important;
  stroke: currentColor !important;
}

.pts-acc-plan-sort-icon-dir {
  width: 0.78rem !important;
  height: 0.78rem !important;
  opacity: 0.75;
  stroke: currentColor !important;
}

.pts-acc-plan-sort-chevron {
  width: 0.95rem !important;
  height: 0.95rem !important;
  flex: 0 0 auto;
  opacity: 0.7;
  stroke: currentColor !important;
  transition: transform 0.16s ease;
}

.pts-acc-plan-sort-dropdown.show .pts-acc-plan-sort-chevron {
  transform: rotate(180deg);
}

.pts-acc-plan-sort-menu {
  --tblr-dropdown-min-width: 15.5rem;
  width: max(15.5rem, 100%);
  max-height: 20rem;
  overflow: auto;
  padding: 0.3rem;
  z-index: 40;
}

.pts-acc-plan-sort-item {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.55rem !important;
  width: 100%;
  padding: 0.45rem 0.55rem !important;
  border-radius: calc(var(--tblr-border-radius) + 0.05rem);
  white-space: nowrap;
}

.pts-acc-plan-sort-item-label {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pts-acc-plan-sort-check,
.pts-acc-plan-sort-check-slot {
  width: 0.9rem !important;
  height: 0.9rem !important;
  flex: 0 0 auto;
}

.pts-acc-plan-sort-check {
  color: var(--tblr-primary);
  stroke: currentColor !important;
}

.pts-acc-plan-sort-item.active {
  background: color-mix(in srgb, var(--tblr-primary) 10%, transparent);
  color: var(--tblr-body-color);
}

.pts-acc-plan-sort-item.active .pts-acc-plan-sort-icons {
  color: var(--tblr-primary);
}

.pts-acc-plan-board {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  overflow: auto;
  min-height: 0;
  flex: 1 1 auto;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
}

.pts-acc-plan-row {
  display: grid;
  grid-template-columns: var(--pts-acc-plan-house-col) minmax(0, 1fr);
  gap: 0.55rem;
  align-items: stretch;
  min-width: 0;
}

@media (max-width: 767.98px) {
  .pts-acc-plan-toolbar,
  .pts-acc-plan-row {
    grid-template-columns: 1fr;
  }

  .pts-acc-plan-toolbar-end {
    justify-content: stretch;
  }

  .pts-acc-plan-search {
    width: 100%;
  }

  .pts-acc-plan-sort-dropdown,
  .pts-acc-plan-sort-trigger,
  .pts-acc-plan-view-dropdown,
  .pts-acc-plan-view-trigger {
    width: 100%;
    min-width: 0;
  }
}

.pts-acc-plan-row-house {
  position: sticky;
  left: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.4rem;
  min-width: 0;
  padding: 0.55rem 0.6rem 0.58rem;
  border-radius: calc(var(--tblr-border-radius) + 0.2rem);
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 14%, var(--tblr-border-color));
  color: var(--tblr-body-color);
  box-shadow: 0 10px 24px -18px color-mix(in srgb, var(--tblr-primary) 50%, transparent);
  transition: border-color 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
}

[data-bs-theme="dark"] .pts-acc-plan-row-house {
  background: var(--tblr-bg-surface);
}

.pts-acc-plan-row:hover .pts-acc-plan-row-house {
  border-color: color-mix(in srgb, var(--tblr-primary) 28%, var(--tblr-border-color));
  box-shadow: 0 10px 24px -16px color-mix(in srgb, var(--tblr-primary) 55%, transparent);
}

.pts-acc-plan-row-house-stats {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.22rem;
  margin: 0;
  min-width: 0;
}

.pts-acc-plan-row-house-stat {
  display: grid;
  grid-template-columns: minmax(6.5rem, 7.25rem) minmax(0, 1fr);
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  font-size: 0.74rem;
  line-height: 1.25;
}

.pts-acc-plan-row-house-stat-capacity {
  grid-template-columns: minmax(6.5rem, 7.25rem) minmax(0, 1fr) auto;
}

.pts-acc-plan-row-house-stat dt {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin: 0;
  font-weight: 600;
  color: var(--tblr-secondary);
  min-width: 0;
}

.pts-acc-plan-row-house-stat dt .icon {
  width: 0.85rem;
  height: 0.85rem;
  flex-shrink: 0;
  opacity: 0.9;
  color: var(--tblr-primary);
}

.pts-acc-plan-row-house-stat dt span {
  min-width: 0;
}

.pts-acc-plan-row-house-stat dd {
  margin: 0;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--tblr-body-color);
  overflow-wrap: anywhere;
}

.pts-acc-plan-row-house-stat-capacity .pts-acc-plan-row-house-settings {
  justify-self: end;
  align-self: center;
}

.pts-acc-plan-row-house-fill {
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  min-width: 0;
  margin-top: 0.1rem;
}

.pts-acc-plan-row-house-fill-meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.7rem;
  color: var(--tblr-secondary);
}

.pts-acc-plan-row-house-fill-meta strong {
  font-variant-numeric: tabular-nums;
  color: var(--tblr-body-color);
}

.pts-acc-plan-row-house-progress {
  height: 0.45rem;
  margin: 0;
  background: color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-bg-surface-secondary, #f1f5f9));
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 18%, var(--tblr-border-color));
  border-radius: 999px;
  overflow: hidden;
}

.pts-acc-plan-row-house-progress .progress-bar {
  border-radius: 999px;
  background: var(--tblr-primary);
  transition: width 0.2s ease, background-color 0.2s ease;
}

.pts-acc-plan-row-house-progress .progress-bar.bg-success {
  background: var(--tblr-success, #2fb344) !important;
}

.pts-acc-plan-row-house-progress .progress-bar.bg-warning {
  background: var(--tblr-warning, #f76707) !important;
}

.pts-acc-plan-row-house-name {
  margin-top: 0.15rem;
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.25;
  color: var(--tblr-heading-color, var(--tblr-body-color));
  overflow-wrap: anywhere;
}

.pts-acc-plan-row-house-settings {
  position: static;
  width: 1.25rem;
  height: 1.25rem;
  min-width: 1.25rem;
  min-height: 1.25rem;
  flex: 0 0 auto;
  padding: 0;
  border-radius: calc(var(--tblr-border-radius) * 0.9);
  color: var(--tblr-icon-color, var(--tblr-secondary));
  background: color-mix(in srgb, var(--tblr-bg-surface) 70%, transparent);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 14%, var(--tblr-border-color));
  transition: color 0.16s ease, background-color 0.16s ease, border-color 0.16s ease;
}

.pts-acc-plan-row-house-settings .icon {
  width: 0.72rem !important;
  height: 0.72rem !important;
  stroke-width: 1.75;
}

.pts-acc-plan-row-house-settings:hover,
.pts-acc-plan-row-house-settings:focus-visible {
  color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-bg-surface));
  border-color: color-mix(in srgb, var(--tblr-primary) 30%, var(--tblr-border-color));
}

.pts-acc-plan-row-beds,
.pts-acc-plan-row-rooms {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-content: flex-start;
  min-width: 0;
}

.pts-acc-plan-room-card {
  --pts-room-fill: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  min-width: 13.75rem;
  max-width: 100%;
  padding: 0.4rem;
  border-radius: calc(var(--tblr-border-radius) + 0.18rem);
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-border-color));
  box-shadow: 0 8px 18px -16px color-mix(in srgb, var(--tblr-primary) 45%, transparent);
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.pts-acc-plan-room-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  min-height: 1.55rem;
  padding: 0.1rem 0.2rem;
}

.pts-acc-plan-room-card-name {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.82rem;
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: 0.01em;
  color: var(--tblr-body-color);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pts-acc-plan-room-card-beds-count {
  flex: 0 0 auto;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.2;
  color: color-mix(in srgb, var(--tblr-body-color) 72%, transparent);
  white-space: nowrap;
}

.pts-acc-plan-room-card.is-fill-empty {
  border-color: color-mix(in srgb, var(--tblr-danger, #d63939) 42%, var(--tblr-border-color));
}

.pts-acc-plan-room-card.is-fill-low {
  border-color: color-mix(in srgb, var(--tblr-warning, #f76707) 28%, var(--tblr-border-color));
}

.pts-acc-plan-room-card.is-fill-mid {
  border-color: color-mix(in srgb, var(--tblr-primary) 26%, var(--tblr-border-color));
}

.pts-acc-plan-room-card.is-fill-full {
  border-color: color-mix(in srgb, var(--tblr-success, #2fb344) 52%, var(--tblr-border-color));
}

.pts-acc-plan-room-card:hover {
  box-shadow: 0 12px 24px -16px color-mix(in srgb, var(--tblr-primary) 55%, transparent);
}

.pts-acc-plan-room-card-beds {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-content: flex-start;
}

.pts-acc-plan-bed {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.18rem;
  flex: 0 0 auto;
  width: 9.5rem;
  min-height: 2.2rem;
  padding: 0.34rem 0.42rem;
  border: 1px solid transparent;
  border-radius: calc(var(--tblr-border-radius) + 0.05rem);
  color: #fff;
  line-height: 1.15;
  text-align: left;
  appearance: none;
  cursor: pointer;
  transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

.pts-acc-plan-bed:disabled {
  cursor: default;
  opacity: 0.72;
}

.pts-acc-plan-bed-dropdown {
  position: relative;
  flex: 0 0 auto;
}

.pts-acc-plan-bed.is-open {
  outline: none;
  box-shadow:
    0 0 0 0.15rem color-mix(in srgb, var(--tblr-primary) 18%, transparent),
    0 8px 18px -16px color-mix(in srgb, var(--tblr-primary) 55%, transparent);
}

.pts-acc-plan-bed-menu {
  --tblr-dropdown-min-width: 15rem;
  width: max(15rem, 100%);
  max-width: min(20rem, 80vw);
  max-height: 18rem;
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
  overflow: hidden;
  z-index: 30;
}

.pts-acc-plan-bed-menu-list {
  max-height: 12.5rem;
  overflow: auto;
}

.pts-acc-plan-bed-menu .dropdown-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.08rem;
  white-space: normal;
}

.pts-acc-plan-bed-menu-action {
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.55rem !important;
}

.pts-acc-plan-bed-menu-action .icon {
  width: 0.95rem !important;
  height: 0.95rem !important;
  flex: 0 0 auto;
  opacity: 0.9;
  color: var(--tblr-primary);
  stroke: currentColor !important;
}

.pts-acc-plan-bed-menu-action.text-danger .icon {
  color: var(--tblr-danger, #d63939);
}

.pts-acc-plan-bed-menu-action:disabled .icon {
  opacity: 0.45;
}

.pts-acc-plan-bed-menu-name {
  font-size: 0.78rem;
  font-weight: 650;
  line-height: 1.2;
}

.pts-acc-plan-bed-menu-meta {
  font-size: 0.66rem;
  color: var(--tblr-secondary);
  line-height: 1.2;
}

.pts-acc-plan-bed.is-drop-target,
.pts-acc-plan-bed-dropdown.is-drop-target .pts-acc-plan-bed.is-empty {
  outline: none;
  box-shadow:
    0 0 0 0.16rem color-mix(in srgb, var(--tblr-primary) 28%, transparent),
    0 10px 20px -14px color-mix(in srgb, var(--tblr-primary) 55%, transparent);
  border-color: color-mix(in srgb, var(--tblr-primary) 55%, var(--tblr-border-color));
}

.pts-acc-plan-bed.is-occupied[draggable="true"] {
  cursor: grab;
}

.pts-acc-plan-bed.is-occupied[draggable="true"]:active {
  cursor: grabbing;
}

.pts-acc-plan-bed.is-empty {
  position: relative;
  width: 12rem;
  min-height: 0;
  justify-content: flex-start;
  padding-bottom: 1.2rem;
  color: var(--tblr-body-color);
  background:
    linear-gradient(
      160deg,
      color-mix(in srgb, var(--tblr-danger, #d63939) 22%, var(--tblr-bg-surface)) 0%,
      color-mix(in srgb, var(--tblr-danger, #d63939) 8%, var(--tblr-bg-surface)) 58%,
      var(--tblr-bg-surface) 100%
    );
  border-color: color-mix(in srgb, var(--tblr-danger, #d63939) 48%, var(--tblr-border-color));
  box-shadow:
    0 8px 18px -16px color-mix(in srgb, var(--tblr-danger, #d63939) 55%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 45%, transparent);
}

.pts-acc-plan-bed.is-empty .pts-acc-plan-bed-person {
  color: color-mix(in srgb, var(--tblr-danger, #d63939) 78%, var(--tblr-body-color));
  padding-bottom: 0.12rem;
  border-bottom: 1px solid color-mix(in srgb, var(--tblr-danger, #d63939) 36%, var(--tblr-border-color));
  font-weight: 650;
  letter-spacing: 0.02em;
  opacity: 0.96;
}

.pts-acc-plan-bed.is-empty .pts-acc-plan-bed-person .icon {
  color: color-mix(in srgb, var(--tblr-danger, #d63939) 82%, var(--tblr-body-color));
}

.pts-acc-plan-bed.is-empty .pts-acc-plan-bed-details,
.pts-acc-plan-bed.is-empty .pts-acc-plan-bed-foot {
  opacity: 0.92;
}

.pts-acc-plan-bed.is-occupied {
  position: relative;
  width: 12rem;
  min-height: 0;
  justify-content: flex-start;
  padding-bottom: 1.2rem;
  color: var(--tblr-body-color);
  background:
    linear-gradient(
      165deg,
      color-mix(in srgb, var(--tblr-success, #2fb344) 20%, var(--tblr-bg-surface)) 0%,
      color-mix(in srgb, var(--tblr-success, #2fb344) 7%, var(--tblr-bg-surface)) 58%,
      var(--tblr-bg-surface) 100%
    );
  border-color: color-mix(in srgb, var(--tblr-success, #2fb344) 78%, var(--tblr-border-color));
  box-shadow:
    0 8px 18px -16px color-mix(in srgb, var(--tblr-success, #2fb344) 65%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 60%, transparent);
}

.pts-acc-plan-bed.is-occupied:hover {
  border-color: color-mix(in srgb, var(--tblr-success, #2fb344) 92%, var(--tblr-border-color));
  box-shadow:
    0 12px 22px -16px color-mix(in srgb, var(--tblr-success, #2fb344) 72%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 60%, transparent);
}

.pts-acc-plan-bed.is-other {
  background: color-mix(in srgb, var(--tblr-primary) 72%, #000 12%);
  border-color: color-mix(in srgb, var(--tblr-primary) 45%, transparent);
  box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 16%, transparent);
}

.pts-acc-plan-bed.is-none {
  width: auto;
  min-width: 7rem;
  color: var(--tblr-secondary);
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, #f6f8fb) 80%, var(--tblr-bg-surface));
  border-color: color-mix(in srgb, var(--tblr-border-color) 85%, transparent);
  box-shadow: none;
}

.pts-acc-plan-bed-person {
  display: grid;
  grid-template-columns: 0.78rem minmax(0, 1fr);
  column-gap: 0.28rem;
  align-items: center;
  width: 100%;
  min-width: 0;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.pts-acc-plan-bed-person .icon {
  width: 0.78rem !important;
  height: 0.78rem !important;
  flex: 0 0 auto;
  opacity: 0.92;
  stroke: currentColor !important;
}

.pts-acc-plan-bed-person em {
  min-width: 0;
  font-style: normal;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pts-acc-plan-bed.is-occupied .pts-acc-plan-bed-person {
  color: color-mix(in srgb, var(--tblr-success, #2fb344) 42%, var(--tblr-heading-color, var(--tblr-body-color)));
  padding-bottom: 0.12rem;
  border-bottom: 1px solid color-mix(in srgb, var(--tblr-success, #2fb344) 38%, var(--tblr-border-color));
}

.pts-acc-plan-bed.is-occupied .pts-acc-plan-bed-person .icon {
  color: color-mix(in srgb, var(--tblr-success, #2fb344) 78%, var(--tblr-body-color));
}

.pts-acc-plan-bed-details {
  display: flex;
  flex-direction: column;
  gap: 0.18rem;
  min-width: 0;
  width: 100%;
}

.pts-acc-plan-bed-details > span {
  min-width: 0;
  font-size: 0.58rem;
  font-weight: 600;
  line-height: 1.2;
  color: color-mix(in srgb, var(--tblr-body-color) 72%, var(--tblr-secondary));
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pts-acc-plan-bed-details > span.pts-acc-plan-bed-workplace {
  display: grid !important;
  grid-template-columns: 0.72rem minmax(0, 1fr) 0.72rem;
  align-items: center;
  column-gap: 0.12rem;
  width: 100%;
  min-height: 0.9rem;
  overflow: visible;
  font-weight: 700;
  color: color-mix(in srgb, var(--tblr-body-color) 88%, var(--tblr-secondary));
  white-space: normal;
}

.pts-acc-plan-bed-workplace .icon {
  position: static !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  grid-column: 1;
  justify-self: start;
  width: 0.72rem !important;
  height: 0.72rem !important;
  opacity: 0.92;
  color: color-mix(in srgb, var(--tblr-success, #2fb344) 55%, var(--tblr-body-color));
  stroke: currentColor !important;
}

.pts-acc-plan-bed-workplace em {
  grid-column: 2;
  display: block;
  width: 100%;
  min-width: 0;
  padding-inline: 0;
  font-style: normal;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pts-acc-plan-bed-facts {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  column-gap: 0.2rem;
  width: 100%;
  min-width: 0;
}

.pts-acc-plan-bed-fact {
  display: grid;
  grid-template-columns: 0.72rem minmax(0, 1fr);
  column-gap: 0.18rem;
  align-items: center;
  width: 100%;
  min-width: 0;
  font-size: 0.56rem;
  font-weight: 650;
  line-height: 1.15;
  color: color-mix(in srgb, var(--tblr-body-color) 78%, var(--tblr-secondary));
}

.pts-acc-plan-bed-fact.is-age {
  justify-content: center;
  grid-template-columns: 0.72rem auto;
}

.pts-acc-plan-bed-fact.is-birth {
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
}

.pts-acc-plan-bed-fact.is-birth em {
  text-align: right;
}

.pts-acc-plan-bed-fact .icon {
  width: 0.72rem !important;
  height: 0.72rem !important;
  justify-self: start;
  opacity: 0.92;
  color: color-mix(in srgb, var(--tblr-success, #2fb344) 55%, var(--tblr-body-color));
  stroke: currentColor !important;
}

.pts-acc-plan-bed-fact em {
  min-width: 0;
  font-style: normal;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pts-acc-plan-bed-fact.is-age em {
  min-width: 1.5ch;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.pts-acc-plan-bed-details > span.pts-acc-plan-bed-vehicle {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: color-mix(in srgb, var(--tblr-primary) 55%, var(--tblr-body-color));
}

.pts-acc-plan-bed-foot {
  position: absolute;
  left: 0.42rem;
  right: 0.42rem;
  bottom: 0.28rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  column-gap: 0.35rem;
  min-width: 0;
}

.pts-acc-plan-bed-foot .pts-acc-plan-bed-vehicle,
.pts-acc-plan-bed-foot .pts-acc-plan-bed-country {
  display: grid;
  grid-template-columns: 0.72rem minmax(0, 1fr);
  column-gap: 0.18rem;
  align-items: center;
  min-width: 0;
  width: 100%;
  font-size: 0.56rem;
  font-weight: 700;
  line-height: 1.1;
}

.pts-acc-plan-bed-foot .pts-acc-plan-bed-vehicle {
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
  color: color-mix(in srgb, var(--tblr-primary) 55%, var(--tblr-body-color));
}

.pts-acc-plan-bed-foot .pts-acc-plan-bed-vehicle .icon,
.pts-acc-plan-bed-foot .pts-acc-plan-bed-country .icon {
  width: 0.72rem !important;
  height: 0.72rem !important;
  justify-self: start;
  opacity: 0.92;
  stroke: currentColor !important;
}

.pts-acc-plan-bed-foot .pts-acc-plan-bed-vehicle em,
.pts-acc-plan-bed-foot .pts-acc-plan-bed-country em {
  min-width: 0;
  font-style: normal;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pts-acc-plan-bed-foot .pts-acc-plan-bed-country {
  position: static;
  right: auto;
  bottom: auto;
  max-width: none;
  flex: none;
  letter-spacing: 0.01em;
  text-align: left;
  color: color-mix(in srgb, var(--tblr-success, #2fb344) 42%, var(--tblr-body-color));
}

.pts-acc-plan-bed-foot .pts-acc-plan-bed-country em {
  text-align: right;
}

.pts-acc-plan-bed-country {
  position: absolute;
  right: 0.42rem;
  bottom: 0.28rem;
  max-width: calc(100% - 0.7rem);
  font-size: 0.56rem;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.01em;
  text-align: right;
  color: color-mix(in srgb, var(--tblr-success, #2fb344) 42%, var(--tblr-body-color));
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pts-acc-plan-bed-meta {
  font-size: 0.62rem;
  font-weight: 600;
  opacity: 0.9;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pts-acc-plan-empty {
  font-size: 0.84rem;
  color: var(--tblr-secondary);
}

.pts-page-actions .pts-page-action {
  width: var(--pts-page-action-size);
  height: var(--pts-page-action-size);
  min-width: var(--pts-page-action-size);
  min-height: var(--pts-page-action-size);
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--pts-page-action-color) !important;
  background: color-mix(in srgb, var(--tblr-bg-surface, var(--tblr-body-bg)) 88%, transparent);
  border: 1px solid var(--pts-page-action-border);
  border-radius: calc(var(--tblr-border-radius) + 0.15rem);
  box-shadow: none;
  transition: color 0.18s ease, background-color 0.18s ease, border-color 0.18s ease;
}

.pts-page-actions .pts-page-action:hover,
.pts-page-actions .pts-page-action:focus-visible {
  color: var(--pts-page-action-hover) !important;
  background: color-mix(in srgb, var(--tblr-primary) 10%, transparent);
  border-color: color-mix(in srgb, var(--tblr-primary) 28%, var(--tblr-border-color));
}

.pts-page-actions .dropdown.show .pts-page-action {
  color: var(--pts-page-action-hover) !important;
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
  border-color: color-mix(in srgb, var(--tblr-primary) 32%, var(--tblr-border-color));
}

.pts-page-actions .pts-page-action .icon {
  width: var(--pts-page-action-icon) !important;
  height: var(--pts-page-action-icon) !important;
  font-size: var(--pts-page-action-icon);
  stroke-width: 1.5;
  stroke: currentColor !important;
  color: inherit;
  display: block;
}

.pts-page-actions > .btn-primary {
  min-height: var(--pts-page-action-size);
  padding-top: 0;
  padding-bottom: 0;
  display: inline-flex;
  align-items: center;
  border-radius: calc(var(--tblr-border-radius) + 0.15rem);
  box-shadow: none;
}

/* Overlap layout: page header uses theme tokens (not forced white on light body) */
.layout-overlap .page-header {
  border-bottom-color: var(--tblr-border-color);
}

/* —— Page shell alignment (header / body / footer) —— */
:root {
  --pts-gutter-x: 1.25rem;
  --pts-card-gap: 0.65rem;
  --pts-footer-gap: 0.5rem;
  --pts-page-header-pad-y: 0.65rem;
  /* Sidebar brand strip = combo header / topbar row */
  --pts-chrome-top-height: 3.35rem;
  /* Keep Tabler card-row gutters in sync with our shell padding */
  --tblr-page-padding: var(--pts-gutter-x);
}

.page-wrapper .container-xl,
.pts-page-scroll .container-xl,
.pts-page-shell,
header.navbar > .container-xl,
.pts-footer.footer > .container-xl,
.pts-topbar .container-xl {
  padding-left: max(var(--pts-gutter-x), env(safe-area-inset-left, 0px));
  padding-right: max(var(--pts-gutter-x), env(safe-area-inset-right, 0px));
}

/*
 * Card strips (KPI / summary): Bootstrap negative gutters get clipped by
 * overflow:hidden flex shells, so rows look narrower than sibling full-width cards.
 * Use gap + 12-col grid so edges flush with filter / detail cards.
 */
.page-body .row.row-cards,
.pts-dev-usage > .row.row-cards {
  --tblr-gutter-x: 0;
  --tblr-gutter-y: 0;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--pts-card-gap);
  row-gap: var(--pts-card-gap);
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-top: 0;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.page-body .row.row-cards > [class*="col"],
.pts-dev-usage > .row.row-cards > [class*="col"] {
  width: auto !important;
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  grid-column: span 12;
}

/* —— Base (no breakpoint) —— */
.page-body .row.row-cards > .col-6,
.pts-dev-usage > .row.row-cards > .col-6 { grid-column: span 6; }

.page-body .row.row-cards > .col-4,
.pts-dev-usage > .row.row-cards > .col-4 { grid-column: span 4; }

.page-body .row.row-cards > .col-3,
.pts-dev-usage > .row.row-cards > .col-3 { grid-column: span 3; }

@media (min-width: 576px) {
  .page-body .row.row-cards > .col-sm-6,
  .pts-dev-usage > .row.row-cards > .col-sm-6 { grid-column: span 6; }

  .page-body .row.row-cards > .col-sm-4,
  .pts-dev-usage > .row.row-cards > .col-sm-4 { grid-column: span 4; }

  .page-body .row.row-cards > .col-sm-3,
  .pts-dev-usage > .row.row-cards > .col-sm-3 { grid-column: span 3; }
}

@media (min-width: 768px) {
  .page-body .row.row-cards > .col-md-6,
  .pts-dev-usage > .row.row-cards > .col-md-6 { grid-column: span 6; }

  .page-body .row.row-cards > .col-md-4,
  .pts-dev-usage > .row.row-cards > .col-md-4 { grid-column: span 4; }

  .page-body .row.row-cards > .col-md-3,
  .pts-dev-usage > .row.row-cards > .col-md-3 { grid-column: span 3; }
}

@media (min-width: 992px) {
  .page-body .row.row-cards > .col-lg-2,
  .pts-dev-usage > .row.row-cards > .col-lg-2 { grid-column: span 2; }

  .page-body .row.row-cards > .col-lg-3,
  .pts-dev-usage > .row.row-cards > .col-lg-3 { grid-column: span 3; }

  .page-body .row.row-cards > .col-lg-4,
  .pts-dev-usage > .row.row-cards > .col-lg-4 { grid-column: span 4; }

  .page-body .row.row-cards > .col-lg-6,
  .pts-dev-usage > .row.row-cards > .col-lg-6 { grid-column: span 6; }

  .page-body .row.row-cards > .col-lg-8,
  .pts-dev-usage > .row.row-cards > .col-lg-8 { grid-column: span 8; }

  .page-body .row.row-cards > .col-lg-9,
  .pts-dev-usage > .row.row-cards > .col-lg-9 { grid-column: span 9; }

  .page-body .row.row-cards > .col-lg-10,
  .pts-dev-usage > .row.row-cards > .col-lg-10 { grid-column: span 10; }
}

@media (min-width: 1200px) {
  .page-body .row.row-cards > .col-xl-6,
  .pts-dev-usage > .row.row-cards > .col-xl-6 { grid-column: span 6; }

  .page-body .row.row-cards > .col-xl-4,
  .pts-dev-usage > .row.row-cards > .col-xl-4 { grid-column: span 4; }

  .page-body .row.row-cards > .col-xl-3,
  .pts-dev-usage > .row.row-cards > .col-xl-3 { grid-column: span 3; }
}

.pts-dev-usage {
  display: flex;
  flex-direction: column;
  gap: var(--pts-card-gap);
  margin-bottom: 0 !important;
  min-width: 0;
  width: 100%;
}

.pts-dev-usage > .card {
  margin-bottom: 0 !important;
}

body.layout-fluid .page-wrapper .container-xl,
body.layout-fluid .pts-page-scroll .container-xl,
body.layout-fluid .pts-page-shell,
body.layout-fluid header.navbar > .container-xl,
body.layout-fluid .pts-footer.footer > .container-xl,
body.layout-fluid .pts-topbar .container-xl {
  max-width: none;
}

.pts-page-shell,
.pts-page-scroll > .page-body > .container-xl,
.page-wrapper .pts-manage-page > .page-body > .container-xl {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: var(--pts-card-gap);
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
}

body:not(.layout-fluid) .pts-page-shell,
body:not(.layout-fluid) .pts-page-scroll > .page-body > .container-xl,
body:not(.layout-fluid) .page-wrapper .pts-manage-page > .page-body > .container-xl,
body:not(.layout-fluid) header.navbar > .container-xl,
body:not(.layout-fluid) .pts-topbar .container-xl,
body:not(.layout-fluid) .pts-footer.footer > .container-xl {
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
}

.pts-page-scroll > .page-body > .container-xl > .pts-page-header,
.page-wrapper .pts-manage-page > .page-body > .container-xl > .pts-page-header,
.pts-page-scroll > .page-body > .container-xl > .pts-page-detail,
.pts-page-scroll > .page-body > .container-xl > .card,
.pts-page-scroll > .page-body > .container-xl > .row.row-cards,
.page-wrapper .pts-manage-page > .page-body > .container-xl > .pts-manage-card,
.page-wrapper .pts-manage-page > .page-body > .container-xl > .pts-dev-usage {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.pts-page-scroll > .page-body > .container-xl > .pts-page-header,
.page-wrapper .pts-manage-page > .page-body > .container-xl > .pts-page-header {
  flex: 0 0 auto;
  margin-top: 0.55rem;
  margin-bottom: 0;
  padding: 0.6rem 0.85rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-border-color));
  border-radius: var(--tblr-border-radius);
  background: var(--tblr-bg-surface);
  box-shadow: 0 8px 22px -18px color-mix(in srgb, var(--tblr-primary) 28%, transparent);
}

[data-bs-theme="dark"] .pts-page-scroll > .page-body > .container-xl > .pts-page-header,
[data-bs-theme="dark"] .page-wrapper .pts-manage-page > .page-body > .container-xl > .pts-page-header {
  border-color: color-mix(in srgb, var(--tblr-primary) 18%, var(--tblr-border-color));
  box-shadow: 0 10px 24px -20px color-mix(in srgb, #000 55%, transparent);
}

.pts-page-scroll > .page-body > .container-xl > .pts-page-detail {
  flex: 1 1 auto;
  margin-top: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: auto;
  padding: 0.85rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-border-color));
  border-radius: var(--tblr-border-radius);
  background: var(--tblr-bg-surface);
  box-shadow: 0 8px 22px -18px color-mix(in srgb, var(--tblr-primary) 28%, transparent);
}

[data-bs-theme="dark"] .pts-page-scroll > .page-body > .container-xl > .pts-page-detail {
  border-color: color-mix(in srgb, var(--tblr-primary) 18%, var(--tblr-border-color));
  box-shadow: 0 10px 24px -20px color-mix(in srgb, #000 55%, transparent);
}

.page-wrapper .pts-manage-page .pts-manage-card.pts-page-detail {
  margin-top: 0;
  padding: 0;
}

.page-wrapper .pts-manage-page > .page-body > .container-xl > .pts-manage-card {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.page-wrapper .pts-manage-page > .page-body > .container-xl > .pts-dev-usage {
  flex: 0 0 auto;
}

.pts-manage-card > .pts-page-header {
  margin-top: 0;
  border: none;
  border-bottom: 1px solid var(--tblr-border-color);
  border-radius: var(--tblr-border-radius) var(--tblr-border-radius) 0 0;
  box-shadow: none;
  flex: 0 0 auto;
}

[data-bs-theme="dark"] .pts-manage-card > .pts-page-header {
  border-bottom-color: color-mix(in srgb, #fff 12%, transparent);
}

.pts-page-scroll > .page-body > .container-xl > .pts-page-header > .row,
.page-wrapper .pts-manage-page > .page-body > .container-xl > .pts-page-header > .row {
  --bs-gutter-x: 0;
  --bs-gutter-y: 0;
  flex-wrap: nowrap;
  align-items: center;
  column-gap: 0.75rem;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.pts-page-scroll > .page-body > .container-xl > .pts-page-header > .row > .col,
.page-wrapper .pts-manage-page > .page-body > .container-xl > .pts-page-header > .row > .col {
  min-width: 0;
  text-align: start;
}

.pts-page-scroll > .page-body > .container-xl > .pts-page-header > .row > .col-auto,
.page-wrapper .pts-manage-page > .page-body > .container-xl > .pts-page-header > .row > .col-auto {
  flex: 0 0 auto;
}

@media (max-width: 575.98px) {
  .pts-page-scroll > .page-body > .container-xl > .pts-page-header > .row,
  .page-wrapper .pts-manage-page > .page-body > .container-xl > .pts-page-header > .row {
    flex-wrap: wrap;
    row-gap: 0.45rem;
  }

  .pts-page-scroll > .page-body > .container-xl > .pts-page-header > .row > .col-auto,
  .page-wrapper .pts-manage-page > .page-body > .container-xl > .pts-page-header > .row > .col-auto {
    margin-left: auto;
  }
}

.page-wrapper .pts-manage-page .page-body,
.pts-page-scroll > .page-body {
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.pts-page-scroll > .page-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  margin-bottom: var(--pts-footer-gap, 0.5rem);
}

.pts-page-scroll > .page-body > .container-xl {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.pts-page-scroll > .page-body.pts-home {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  margin-bottom: var(--pts-footer-gap, 0.5rem);
}

.pts-page-scroll > .page-body.pts-home > .container-xl {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}


.pts-page-detail.pts-manage-detail {
  padding: 0;
  overflow: hidden;
}

/* —— PTS Assistant (corporate full-bleed chat) —— */
.pts-page-scroll > .page-body > .container-xl > .pts-page-detail.pts-assistant-detail {
  padding: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1 1 auto;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background:
    radial-gradient(
      120% 80% at 50% -10%,
      color-mix(in srgb, var(--tblr-primary) 6%, transparent),
      transparent 55%
    ),
    transparent !important;
}

.pts-assistant {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  padding: 0;
  isolation: isolate;
}

.pts-assistant-watermark {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  pointer-events: none;
  user-select: none;
  opacity: 0.07;
}

.pts-assistant-watermark-wordmark {
  font-size: clamp(3.2rem, 14vw, 7.5rem);
  letter-spacing: -0.055em;
  line-height: 1;
  filter: none;
}

.pts-assistant-watermark-tag {
  font-size: clamp(0.85rem, 1.6vw, 1.15rem);
  font-weight: 650;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--tblr-body-color);
}

[data-bs-theme="dark"] .pts-assistant-watermark {
  opacity: 0.09;
}

.pts-assistant-main {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: hidden;
}

.pts-assistant-messages {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 0.85rem 0.85rem 0.65rem;
  scroll-behavior: smooth;
}

.pts-assistant-stream {
  width: 100%;
  max-width: none;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 1rem;
  min-height: 100%;
}

.pts-assistant-welcome {
  margin: auto;
  max-width: 28rem;
  text-align: center;
  padding: 2.25rem 1.15rem;
  animation: pts-assistant-rise 0.45s ease-out both;
}

.pts-assistant-welcome-eyebrow {
  margin-bottom: 0.85rem !important;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--tblr-primary) 72%, var(--tblr-secondary));
}

.pts-assistant-welcome-title {
  margin: 0 0 0.55rem;
  font-size: clamp(1.35rem, 2.2vw, 1.65rem);
  font-weight: 650;
  letter-spacing: -0.025em;
  line-height: 1.2;
  color: var(--tblr-body-color);
}

.pts-assistant-welcome-copy {
  font-size: 0.9375rem;
  line-height: 1.55;
  color: color-mix(in srgb, var(--tblr-body-color) 62%, var(--tblr-secondary));
}

.pts-assistant-msg {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  max-width: min(48rem, 78%);
  width: fit-content;
  animation: pts-assistant-rise 0.28s ease-out both;
}

.pts-assistant-msg.is-assistant {
  align-self: flex-start;
  width: fit-content;
  max-width: min(48rem, 92%);
  margin-right: auto;
  margin-left: 0;
  justify-content: flex-start;
}

.pts-assistant-msg.is-assistant .pts-assistant-bubble {
  max-width: 100%;
  width: 100%;
}

.pts-assistant-downloads {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.35rem;
  margin: 0.55rem 0 0 auto;
  width: fit-content;
  max-width: min(14rem, 70%);
}

.pts-assistant-download-row {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.28rem;
  width: 100%;
}

.pts-assistant-download-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0;
  max-width: 100%;
  padding-inline: 0.65rem;
  font-size: 0.78rem;
}

.pts-assistant-download-row .pts-assistant-download-btn {
  margin-top: 0;
}

.pts-assistant-download-progress {
  height: 0.3rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--tblr-secondary) 18%, transparent);
  overflow: hidden;
}

.pts-assistant-download-progress-bar {
  height: 100%;
  border-radius: inherit;
  background: var(--tblr-primary);
  transition: width 80ms linear;
}

.pts-assistant-stream-end {
  height: 1px;
  width: 100%;
  outline: none;
}

.pts-assistant-download-btn .icon {
  width: 0.9rem;
  height: 0.9rem;
  flex: 0 0 auto;
}

.pts-assistant-download-btn span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 8.5rem;
}

.pts-assistant-download-btn small {
  opacity: 0.7;
  font-variant-numeric: tabular-nums;
  flex: 0 0 auto;
}

.pts-assistant-export-totals {
  margin-top: 0.4rem;
  text-align: left;
  font-size: 0.78rem;
  line-height: 1.35;
  font-variant-numeric: tabular-nums;
  color: color-mix(in srgb, var(--tblr-body-color) 62%, var(--tblr-secondary));
}

.pts-assistant-msg.is-user {
  align-self: flex-end;
  margin-left: auto;
  margin-right: 0;
  flex-direction: row-reverse;
  justify-content: flex-end;
}

.pts-assistant-avatar {
  flex: 0 0 auto;
  align-self: flex-start;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 0.65rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1;
  color: #fff;
  background: color-mix(in srgb, var(--tblr-primary) 78%, #111);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 48%, var(--tblr-border-color));
  box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 18%, transparent);
}

.pts-assistant-bubble {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  width: fit-content;
  padding: 0.85rem 1rem 0.95rem;
  border-radius: 0.95rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 88%, transparent);
  background: color-mix(in srgb, var(--tblr-bg-surface) 96%, transparent);
  box-shadow: 0 8px 24px -20px color-mix(in srgb, var(--tblr-body-color) 35%, transparent);
}

.pts-assistant-bubble.is-assistant {
  border-left: 2px solid color-mix(in srgb, var(--tblr-primary) 55%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-bg-surface) 98%, var(--tblr-primary));
  border-radius: 0.95rem 0.95rem 0.95rem 0.35rem;
}

.pts-assistant-bubble.is-user {
  background: color-mix(in srgb, var(--tblr-primary) 9%, var(--tblr-bg-surface));
  border-color: color-mix(in srgb, var(--tblr-primary) 24%, var(--tblr-border-color));
  box-shadow: 0 10px 26px -22px color-mix(in srgb, var(--tblr-primary) 50%, #000);
  border-radius: 0.95rem 0.95rem 0.35rem 0.95rem;
}

.pts-assistant-bubble-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.85rem;
  margin-bottom: 0.45rem;
}

.pts-assistant-bubble-name {
  min-width: 0;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.25;
  color: color-mix(in srgb, var(--tblr-body-color) 88%, var(--tblr-secondary));
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-assistant-bubble-time {
  flex: 0 0 auto;
  margin-left: auto;
  font-size: 0.7rem;
  font-weight: 500;
  line-height: 1.25;
  white-space: nowrap;
  color: color-mix(in srgb, var(--tblr-body-color) 48%, var(--tblr-secondary));
  font-variant-numeric: tabular-nums;
}

.pts-assistant-bubble-role {
  margin-bottom: 0.25rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--tblr-body-color) 55%, var(--tblr-secondary));
}

.pts-assistant-bubble-text {
  font-size: 0.95rem;
  line-height: 1.6;
  letter-spacing: -0.005em;
  color: var(--tblr-body-color);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.pts-assistant-bubble-meta {
  margin-top: 0.45rem;
  font-size: 0.68rem;
  line-height: 1.3;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
  color: color-mix(in srgb, var(--tblr-body-color) 42%, var(--tblr-secondary));
}

@keyframes pts-assistant-rise {
  from {
    opacity: 0;
    transform: translateY(0.35rem);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.pts-assistant-history-item {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  width: 100%;
  padding: 0.75rem 0.85rem;
  border: 0;
  background: transparent;
  text-align: left;
  color: inherit;
}

.pts-assistant-history-item:hover,
.pts-assistant-history-item.is-active {
  background: color-mix(in srgb, var(--tblr-primary) 8%, transparent);
}

.pts-assistant-history-item-icon {
  display: inline-flex;
  flex: 0 0 auto;
  margin-top: 0.1rem;
  color: var(--tblr-secondary);
}

.pts-assistant-history-item-text {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.pts-assistant-history-item-text strong {
  font-weight: 600;
  overflow-wrap: anywhere;
}

/* Assistant folder modals — fixed width, calm chrome */
.pts-assistant-folder-modal {
  width: 26rem;
  max-width: calc(100vw - 1.5rem);
  margin-left: auto;
  margin-right: auto;
}

.pts-assistant-folder-modal-content {
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 85%, transparent);
  border-radius: 1rem;
  box-shadow:
    0 0.35rem 1.25rem color-mix(in srgb, var(--tblr-body-color) 8%, transparent),
    0 0.05rem 0.2rem color-mix(in srgb, var(--tblr-body-color) 4%, transparent);
  overflow: hidden;
}

.pts-assistant-folder-modal-head {
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1.1rem 1.15rem 0.85rem;
  border-bottom: 1px solid color-mix(in srgb, var(--tblr-border-color) 80%, transparent);
  background: color-mix(in srgb, var(--tblr-bg-surface) 92%, var(--tblr-bg-surface-secondary));
}

.pts-assistant-folder-modal-head .modal-title {
  font-size: 1.05rem;
  font-weight: 650;
  letter-spacing: -0.01em;
}

.pts-assistant-folder-modal-sub {
  margin-top: 0.2rem;
  font-size: 0.8125rem;
  line-height: 1.35;
  color: color-mix(in srgb, var(--tblr-body-color) 62%, var(--tblr-secondary));
}

.pts-assistant-folder-modal-body {
  padding: 0.85rem 0.95rem 0.5rem;
  max-height: min(28rem, calc(100vh - 14rem));
  overflow: auto;
}

.pts-assistant-folder-modal-foot {
  padding: 0.75rem 1rem 1rem;
  border-top: 1px solid color-mix(in srgb, var(--tblr-border-color) 80%, transparent);
  background: color-mix(in srgb, var(--tblr-bg-surface) 96%, var(--tblr-bg-surface-secondary));
}

.pts-assistant-folder-quick {
  margin-bottom: 0.75rem;
}

.pts-assistant-folder-quick-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
  font-size: 0.75rem;
  color: var(--tblr-secondary);
}

.pts-assistant-folder-quick-row {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.pts-assistant-folder-quick-input {
  border-radius: 0.65rem;
  min-height: 2.35rem;
}

.pts-assistant-folder-quick-add {
  width: 2.35rem;
  height: 2.35rem;
  min-width: 2.35rem;
  padding: 0;
  border-radius: 0.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.pts-assistant-folder-empty {
  padding: 1.25rem 0.5rem;
  text-align: center;
  font-size: 0.875rem;
  color: var(--tblr-secondary);
}

.pts-assistant-folder-list {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.pts-assistant-folder-row {
  --pts-folder-depth: 0;
  display: grid;
  grid-template-columns: 1.1rem 1.4rem 1.1rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.2rem;
  min-height: 2.25rem;
  padding: 0.2rem 0.35rem 0.2rem calc(0.2rem + (var(--pts-folder-depth) * 0.9rem));
  border-radius: 0.65rem;
  border: 1px solid transparent;
  background: transparent;
  transition: background 0.12s ease, border-color 0.12s ease;
}

.pts-assistant-folder-row.is-selectable {
  cursor: pointer;
}

.pts-assistant-folder-row:hover,
.pts-assistant-folder-row.is-selected {
  background: color-mix(in srgb, var(--tblr-primary) 8%, transparent);
}

.pts-assistant-folder-row.is-selected {
  border-color: color-mix(in srgb, var(--tblr-primary) 28%, transparent);
}

.pts-assistant-folder-row.pts-row-dragging {
  opacity: 0.72;
}

.pts-assistant-folder-row.pts-row-drag-over {
  border-color: color-mix(in srgb, var(--tblr-primary) 45%, transparent);
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
}

.pts-assistant-folder-drag,
.pts-assistant-folder-drag-spacer,
.pts-assistant-folder-toggle-spacer {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.1rem;
  height: 1.1rem;
  color: color-mix(in srgb, var(--tblr-secondary) 80%, transparent);
}

.pts-assistant-folder-drag {
  cursor: grab;
  touch-action: none;
}

.pts-assistant-folder-toggle {
  width: 1.4rem !important;
  height: 1.4rem !important;
  min-width: 1.4rem !important;
  color: var(--tblr-secondary) !important;
}

.pts-assistant-folder-toggle .icon {
  transition: transform 0.12s ease;
}

.pts-assistant-folder-toggle:not(.is-open) .icon {
  transform: rotate(-90deg);
}

.pts-assistant-folder-ico {
  display: inline-flex;
  color: color-mix(in srgb, var(--tblr-primary) 70%, var(--tblr-secondary));
}

.pts-assistant-folder-name {
  min-width: 0;
  border: 0;
  background: transparent;
  text-align: start;
  padding: 0.15rem 0.25rem;
  font-size: 0.9rem;
  font-weight: 550;
  color: inherit;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-assistant-folder-rename {
  min-width: 0;
  height: 1.85rem;
}

.pts-assistant-folder-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.05rem;
  opacity: 0.55;
}

.pts-assistant-folder-row:hover .pts-assistant-folder-actions,
.pts-assistant-folder-row.is-selected .pts-assistant-folder-actions {
  opacity: 1;
}

.pts-assistant-composer {
  flex: 0 0 auto;
  display: flex;
  align-items: flex-end;
  gap: 0.55rem;
  padding: 0;
  border: 0;
  background: transparent;
}

.pts-assistant-dock {
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  margin: 0 0.85rem 0.85rem;
  padding: 0.6rem 0.85rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-border-color));
  border-radius: var(--tblr-border-radius);
  background: var(--tblr-bg-surface);
  box-shadow: 0 8px 22px -18px color-mix(in srgb, var(--tblr-primary) 28%, transparent);
  backdrop-filter: none;
}

[data-bs-theme="dark"] .pts-assistant-dock {
  border-color: color-mix(in srgb, var(--tblr-primary) 18%, var(--tblr-border-color));
  box-shadow: 0 10px 24px -20px color-mix(in srgb, #000 55%, transparent);
}

.pts-assistant-dock .pts-assistant-attach-chips {
  margin: 0 0 0.55rem;
  padding: 0;
}

.pts-assistant-dock .pts-assistant-dictation-status {
  margin: 0 0 0.55rem;
}

.pts-assistant-composer-tools {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  flex: 0 0 auto;
  height: 2.75rem;
}

.pts-assistant-attach-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.pts-assistant-tool {
  appearance: none;
  position: relative;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 2.55rem;
  min-width: 2.55rem;
  height: 2.55rem;
  padding: 0 !important;
  margin: 0;
  line-height: 0;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 90%, var(--tblr-secondary));
  border-radius: 0.75rem;
  color: color-mix(in srgb, var(--tblr-body-color) 70%, var(--tblr-secondary));
  background: color-mix(in srgb, var(--tblr-body-color) 4%, var(--tblr-bg-surface));
  box-shadow: none;
  cursor: pointer;
  transition:
    color 0.15s ease,
    background-color 0.15s ease,
    border-color 0.15s ease,
    transform 0.15s ease;
}

.pts-assistant-tool:hover:not(:disabled),
.pts-assistant-tool:focus-visible {
  color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-bg-surface));
  border-color: color-mix(in srgb, var(--tblr-primary) 45%, var(--tblr-border-color));
  outline: none;
}

.pts-assistant-tool:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.pts-assistant-tool .icon {
  display: block;
  width: 1.2rem;
  height: 1.2rem;
  margin: 0;
  flex: 0 0 auto;
  pointer-events: none;
}

.pts-assistant-tool.is-open {
  color: var(--tblr-primary);
  border-color: color-mix(in srgb, var(--tblr-primary) 48%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-bg-surface));
}

.pts-assistant-attach-menu {
  position: absolute;
  left: 0;
  bottom: calc(100% + 0.45rem);
  z-index: 5;
  min-width: 10rem;
  padding: 0.35rem;
  border: 1px solid var(--tblr-border-color);
  border-radius: calc(var(--tblr-border-radius) + 0.15rem);
  background: var(--tblr-bg-surface, #fff);
  box-shadow: 0 12px 28px -18px color-mix(in srgb, #000 50%, transparent);
}

.pts-assistant-attach-item {
  appearance: none;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  width: 100%;
  margin: 0;
  padding: 0.55rem 0.65rem;
  border: 0;
  border-radius: calc(var(--tblr-border-radius) - 0.05rem);
  background: transparent;
  color: var(--tblr-body-color);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.2;
  text-align: start;
  cursor: pointer;
}

.pts-assistant-attach-item:hover:not(:disabled) {
  background: color-mix(in srgb, var(--tblr-primary) 8%, var(--tblr-bg-surface));
}

.pts-assistant-attach-item .icon {
  display: block;
  width: 1.05rem;
  height: 1.05rem;
  flex: 0 0 auto;
  color: color-mix(in srgb, var(--tblr-body-color) 62%, var(--tblr-secondary));
}

.pts-assistant-attach-chips {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0;
  padding: 0.55rem 1rem 0;
}

.pts-assistant-attach-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  max-width: 100%;
  padding: 0.35rem 0.5rem 0.35rem 0.6rem;
  border: 1px solid var(--tblr-border-color);
  border-radius: 999px;
  background: var(--tblr-bg-surface);
  font-size: 0.78rem;
  line-height: 1;
  color: var(--tblr-body-color);
}

.pts-assistant-attach-chip .icon {
  display: block;
  width: 0.95rem;
  height: 0.95rem;
  flex: 0 0 auto;
}

.pts-assistant-attach-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 12rem;
  line-height: 1.2;
}

.pts-assistant-attach-remove {
  width: 0.7rem;
  height: 0.7rem;
  margin-left: 0.1rem;
  opacity: 0.7;
}

.pts-assistant-bubble-files {
  list-style: none;
  margin: 0.55rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.pts-assistant-bubble-files li {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8125rem;
  color: var(--tblr-body-color);
}

.pts-assistant-bubble-files .icon {
  display: block;
  width: 0.95rem;
  height: 0.95rem;
  flex: 0 0 auto;
}

.pts-assistant-bubble-files small {
  margin-left: auto;
  color: color-mix(in srgb, var(--tblr-body-color) 55%, var(--tblr-secondary));
}

.pts-assistant-input {
  flex: 1 1 auto;
  min-height: 2.55rem;
  max-height: calc(1.45em * 5 + 1.3rem + 2px);
  resize: none;
  overflow-y: hidden;
  padding: 0.65rem 0.85rem;
  border-radius: 0.75rem;
  border-color: color-mix(in srgb, var(--tblr-border-color) 88%, transparent);
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary) 65%, var(--tblr-bg-surface));
  font-size: 0.9375rem;
  line-height: 1.45;
  color: var(--tblr-body-color);
  -webkit-text-fill-color: var(--tblr-body-color);
  box-shadow: none;
  field-sizing: content;
}

.pts-assistant-input:focus {
  border-color: color-mix(in srgb, var(--tblr-primary) 42%, var(--tblr-border-color));
  box-shadow: 0 0 0 0.15rem color-mix(in srgb, var(--tblr-primary) 14%, transparent);
}

.pts-assistant-input::placeholder {
  color: color-mix(in srgb, var(--tblr-body-color) 48%, var(--tblr-secondary));
  -webkit-text-fill-color: color-mix(in srgb, var(--tblr-body-color) 48%, var(--tblr-secondary));
  opacity: 1;
}

.pts-assistant-input.is-listening {
  border-color: color-mix(in srgb, var(--tblr-danger, #d63939) 45%, var(--tblr-border-color));
  box-shadow: 0 0 0 0.12rem color-mix(in srgb, var(--tblr-danger, #d63939) 16%, transparent);
}

.pts-assistant-dictation-status {
  flex: 0 0 auto;
  margin: 0 1rem;
  padding: 0.45rem 0.65rem;
  font-size: 0.8125rem;
  line-height: 1.35;
  color: color-mix(in srgb, var(--tblr-body-color) 70%, var(--tblr-secondary));
  border-radius: var(--tblr-border-radius-sm);
  background: color-mix(in srgb, var(--tblr-body-color) 4%, var(--tblr-bg-surface));
}

.pts-assistant-dictation-status.is-error {
  color: var(--tblr-danger, #d63939);
  background: color-mix(in srgb, var(--tblr-danger, #d63939) 8%, var(--tblr-bg-surface));
}

.pts-assistant-mic.is-listening,
.pts-assistant-mic.is-requesting {
  color: #fff;
  border-color: color-mix(in srgb, var(--tblr-danger, #d63939) 70%, #000);
  background: var(--tblr-danger, #d63939);
}

.pts-assistant-mic.is-listening:hover:not(:disabled),
.pts-assistant-mic.is-requesting:hover:not(:disabled) {
  color: #fff;
  background: color-mix(in srgb, var(--tblr-danger, #d63939) 88%, #000);
  border-color: color-mix(in srgb, var(--tblr-danger, #d63939) 55%, #000);
}

.pts-assistant-mic-dot {
  position: absolute;
  top: 0.38rem;
  right: 0.38rem;
  width: 0.38rem;
  height: 0.38rem;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 0 0 0 color-mix(in srgb, #fff 45%, transparent);
  animation: pts-assistant-mic-pulse 1.2s ease-out infinite;
}

@keyframes pts-assistant-mic-pulse {
  0% {
    box-shadow: 0 0 0 0 color-mix(in srgb, #fff 45%, transparent);
  }
  70% {
    box-shadow: 0 0 0 0.4rem transparent;
  }
  100% {
    box-shadow: 0 0 0 0 transparent;
  }
}

.pts-assistant-send {
  flex: 0 0 auto;
  appearance: none;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 90%, var(--tblr-secondary)) !important;
  border-radius: 0.75rem !important;
  background: color-mix(in srgb, var(--tblr-body-color) 4%, var(--tblr-bg-surface)) !important;
  color: color-mix(in srgb, var(--tblr-body-color) 70%, var(--tblr-secondary)) !important;
  box-shadow: none !important;
}

.pts-assistant-send:hover:not(:disabled),
.pts-assistant-send:focus-visible {
  color: var(--tblr-primary) !important;
  background: color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-bg-surface)) !important;
  border-color: color-mix(in srgb, var(--tblr-primary) 45%, var(--tblr-border-color)) !important;
}

.pts-assistant-send:disabled {
  opacity: 0.45;
  border-color: color-mix(in srgb, var(--tblr-border-color) 90%, var(--tblr-secondary)) !important;
}


.pts-manage-main-frame {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  overflow: hidden;
}

.pts-manage-main-frame > .pts-manage-content {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  height: auto;
}

.pts-manage-detail-footer {
  --pts-manage-detail-footer-min-height: 3.55rem;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  min-height: var(--pts-manage-detail-footer-min-height);
  padding: 0.72rem 1.15rem;
  border-top: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
  background: color-mix(in srgb, var(--tblr-bg-surface) 92%, var(--tblr-border-color));
  box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 42%, transparent);
}

[data-bs-theme="dark"] .pts-manage-detail-footer {
  background: color-mix(in srgb, var(--tblr-bg-surface) 96%, #000);
  box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 6%, transparent);
}

.pts-manage-detail-footer-start,
.pts-manage-detail-footer-end {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  flex-wrap: wrap;
}

.pts-manage-detail-footer-end {
  margin-left: auto;
  justify-content: flex-end;
}

.pts-manage-detail-footer-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 2.35rem;
  padding: 0.42rem 1rem;
  font-weight: 500;
  line-height: 1.2;
  border-width: 1px;
}

.pts-manage-detail-footer-btn .icon {
  width: 1.05rem;
  height: 1.05rem;
  flex-shrink: 0;
}

.pts-customer-detail-form {
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
}

.pts-manage-nav-customer-detail .pts-manage-nav-groups {
  gap: 0.75rem;
}

.pts-manage-nav-back {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
  min-height: 2.55rem;
  padding: 0.52rem 0.9rem;
  font-weight: 600;
  border-width: 1px;
  background: var(--tblr-bg-surface);
  box-shadow: 0 1px 2px color-mix(in srgb, #000 7%, transparent);
}

.pts-manage-nav-back:hover:not(:disabled),
.pts-manage-nav-back:focus-visible:not(:disabled) {
  background: color-mix(in srgb, var(--tblr-primary) 6%, var(--tblr-bg-surface));
  border-color: color-mix(in srgb, var(--tblr-primary) 28%, var(--tblr-border-color));
}

.pts-manage-content.pts-manage-content-detail {
  padding: 1.05rem 1.15rem 1.15rem;
}

.pts-manage-content.pts-manage-content-detail > .pts-manage-section {
  flex: 0 1 auto;
  height: auto;
  min-height: 0;
  overflow: visible;
}

.pts-manage-content.pts-manage-content-detail > .pts-manage-section .pts-manage-section-body {
  overflow: visible;
}

.pts-manage-content.pts-manage-content-detail:has(> .pts-manage-section-table) {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.pts-manage-content.pts-manage-content-detail > .pts-manage-section.pts-manage-section-table {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

.pts-manage-content.pts-manage-content-detail > .pts-manage-section.pts-manage-section-table .pts-manage-section-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.pts-inspect-grid dt {
  margin-bottom: 0.35rem;
  font-weight: 500;
}

.pts-inspect-grid dd {
  margin-bottom: 0.85rem;
}

.pts-license-body {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

.pts-license-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 14rem;
  padding: 2rem 1.25rem;
  text-align: center;
  border: 1px dashed color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 90%, transparent);
  border-radius: 1.1rem;
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, #f6f8fb) 55%, var(--tblr-bg-surface, #fff));
}

.pts-license-empty-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  margin-bottom: 0.35rem;
  border-radius: 0.9rem;
  background: color-mix(in srgb, var(--tblr-primary, #206bc4) 12%, transparent);
  color: var(--tblr-primary, #206bc4);
}

.pts-license-empty h3 {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 650;
}

.pts-license-empty p {
  margin: 0;
  max-width: 28rem;
  color: var(--tblr-secondary, #667382);
  font-size: 0.875rem;
}

.pts-license-hero {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  padding: 1.25rem 1.35rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 18%, var(--tblr-border-color));
  border-radius: 1.15rem;
  background:
    radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, var(--tblr-primary) 14%, transparent) 0%, transparent 55%),
    linear-gradient(
      145deg,
      color-mix(in srgb, var(--tblr-primary) 8%, var(--tblr-bg-surface)) 0%,
      var(--tblr-bg-surface) 62%
    );
  box-shadow: 0 1px 0 color-mix(in srgb, var(--tblr-primary) 8%, transparent);
}

.pts-license-hero.is-ok {
  border-color: color-mix(in srgb, var(--tblr-success, #2fb344) 28%, var(--tblr-border-color));
}

.pts-license-hero.is-warn {
  border-color: color-mix(in srgb, var(--tblr-warning, #f76707) 28%, var(--tblr-border-color));
}

.pts-license-hero.is-danger {
  border-color: color-mix(in srgb, var(--tblr-danger, #d63939) 28%, var(--tblr-border-color));
}

.pts-license-hero-mark {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  background: color-mix(in srgb, var(--tblr-primary) 16%, var(--tblr-bg-surface));
  color: var(--tblr-primary);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tblr-primary) 12%, transparent);
}

.pts-license-hero-mark .icon {
  width: 1.5rem;
  height: 1.5rem;
}

.pts-license-hero-copy {
  min-width: 0;
  flex: 1 1 auto;
}

.pts-license-hero-kicker {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--tblr-primary) 70%, var(--tblr-body-color));
}

.pts-license-hero-title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.7rem;
  margin: 0.2rem 0 0.5rem;
}

.pts-license-hero h3 {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.2;
}

.pts-license-status {
  font-weight: 650;
}

.pts-license-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.pts-license-chip,
.pts-license-admin,
.pts-license-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
}

.pts-license-chip {
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-bg-surface));
  color: color-mix(in srgb, var(--tblr-body-color) 86%, var(--tblr-primary));
  font-size: 0.8125rem;
  font-weight: 550;
}

.pts-license-chip-soft {
  background: color-mix(in srgb, var(--tblr-secondary) 10%, var(--tblr-bg-surface));
  color: color-mix(in srgb, var(--tblr-body-color) 72%, var(--tblr-secondary));
}

.pts-license-chip .icon,
.pts-license-admin .icon,
.pts-license-link .icon,
.pts-license-module .icon,
.pts-license-seats-note .icon {
  width: 0.95rem;
  height: 0.95rem;
  flex: 0 0 auto;
}

.pts-license-mono {
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
  font-weight: 650;
  overflow-wrap: anywhere;
}

.pts-license-validity {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 0.85rem;
  padding: 0.85rem 1.05rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 88%, transparent);
  border-radius: 1rem;
  background: var(--tblr-bg-surface);
}

.pts-license-validity-item strong {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.98rem;
  font-weight: 650;
}

.pts-license-validity-rule {
  width: min(8rem, 18vw);
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--tblr-primary) 15%, transparent),
    color-mix(in srgb, var(--tblr-primary) 55%, transparent),
    color-mix(in srgb, var(--tblr-primary) 15%, transparent)
  );
}

.pts-license-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.8rem;
}

.pts-license-metric {
  min-width: 0;
  padding: 0.95rem 1rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 88%, transparent);
  border-radius: 1rem;
  background: var(--tblr-bg-surface);
  box-shadow: 0 1px 0 color-mix(in srgb, var(--tblr-body-color) 3%, transparent);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.pts-license-metric.is-ok {
  border-color: color-mix(in srgb, var(--tblr-success) 30%, transparent);
}

.pts-license-metric-label {
  display: block;
  margin-bottom: 0.3rem;
  font-size: 0.6875rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--tblr-body-color) 56%, var(--tblr-secondary));
}

.pts-license-metric strong {
  display: block;
  font-size: 1.12rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.25;
}

.pts-license-metric-hint {
  display: block;
  margin-top: 0.3rem;
  font-size: 0.75rem;
  line-height: 1.35;
  color: color-mix(in srgb, var(--tblr-body-color) 58%, var(--tblr-secondary));
}

.pts-license-panels {
  display: grid;
  grid-template-columns: minmax(16rem, 1fr) minmax(0, 1.2fr);
  gap: 0.85rem;
}

.pts-license-panel {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  padding: 1.1rem 1.15rem 1.1rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 88%, transparent);
  border-radius: 1.05rem;
  background: var(--tblr-bg-surface);
  box-shadow: 0 1px 0 color-mix(in srgb, var(--tblr-body-color) 3%, transparent);
}

.pts-license-panel-head {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.pts-license-panel-icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  background: color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-bg-surface));
  color: var(--tblr-primary);
}

.pts-license-panel-icon .icon {
  width: 1.05rem;
  height: 1.05rem;
}

.pts-license-panel-head h4 {
  margin: 0;
  font-size: 0.98rem;
  font-weight: 650;
}

.pts-license-panel-head p {
  margin: 0.18rem 0 0;
  font-size: 0.78rem;
  color: color-mix(in srgb, var(--tblr-body-color) 58%, var(--tblr-secondary));
}

.pts-license-authorized {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
}

.pts-license-avatar {
  width: 2.9rem;
  height: 2.9rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  background: color-mix(in srgb, var(--tblr-primary) 16%, var(--tblr-bg-surface));
  color: var(--tblr-primary);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tblr-primary) 12%, transparent);
}

.pts-license-avatar-empty {
  background: color-mix(in srgb, var(--tblr-secondary) 12%, var(--tblr-bg-surface));
  color: color-mix(in srgb, var(--tblr-body-color) 55%, var(--tblr-secondary));
  box-shadow: none;
}

.pts-license-fields {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  display: grid;
  gap: 0.75rem;
}

.pts-license-field dt {
  margin: 0 0 0.12rem;
  font-size: 0.6875rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--tblr-body-color) 56%, var(--tblr-secondary));
}

.pts-license-field dd {
  margin: 0;
  font-weight: 550;
  overflow-wrap: anywhere;
}

.pts-license-link {
  color: inherit;
  text-decoration: none;
}

.pts-license-link:hover {
  color: var(--tblr-primary);
}

.pts-license-modules {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}

.pts-license-module {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
  padding: 0.55rem 0.7rem;
  border-radius: 0.8rem;
  font-size: 0.8125rem;
  font-weight: 550;
  background: color-mix(in srgb, var(--tblr-primary) 8%, var(--tblr-bg-surface));
  color: color-mix(in srgb, var(--tblr-body-color) 88%, var(--tblr-primary));
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 12%, transparent);
}

.pts-license-module-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 0.5rem;
  flex: 0 0 auto;
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
}

.pts-license-module-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-license-seats-note {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: auto;
  padding-top: 0.15rem;
  font-size: 0.8125rem;
  color: color-mix(in srgb, var(--tblr-body-color) 62%, var(--tblr-secondary));
}

@media (max-width: 991.98px) {
  .pts-license-metrics,
  .pts-license-panels {
    grid-template-columns: 1fr 1fr;
  }

  .pts-license-modules {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .pts-license-hero,
  .pts-license-authorized {
    align-items: flex-start;
  }

  .pts-license-hero {
    flex-direction: column;
  }

  .pts-license-validity {
    grid-template-columns: 1fr;
    gap: 0.55rem;
  }

  .pts-license-validity-rule {
    width: 100%;
  }

  .pts-license-metrics,
  .pts-license-panels {
    grid-template-columns: 1fr;
  }
}

.pts-inspect-detail {
  margin: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
  font-family: var(--tblr-font-sans-serif, inherit);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.55;
  color: var(--tblr-body-color, #1e293b);
  background: var(--tblr-bg-surface, #fff);
  border: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 85%, transparent);
  border-radius: 0.5rem;
  padding: 0.85rem 0.95rem;
  max-height: min(22rem, 42vh);
  overflow: auto;
  -webkit-text-fill-color: var(--tblr-body-color, #1e293b);
}

.pts-inspect-detail.text-danger {
  color: var(--tblr-danger, #d63939);
  -webkit-text-fill-color: var(--tblr-danger, #d63939);
}

.pts-inspect-detail.text-secondary {
  color: color-mix(in srgb, var(--tblr-body-color) 62%, var(--tblr-secondary));
  -webkit-text-fill-color: color-mix(in srgb, var(--tblr-body-color) 62%, var(--tblr-secondary));
}

/* Development request inspect — portal customer modal body sections. */
.pts-dev-inspect {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

.pts-dev-inspect-block {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.pts-dev-inspect-label {
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--tblr-body-color, #1e293b);
}

.pts-region-form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.pts-photo-form .pts-photo-card {
  border-radius: 1rem;
}

.pts-logo-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px dashed color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 85%, transparent);
  border-radius: 0.75rem;
  background-color: var(--tblr-bg-surface-secondary, rgba(0, 0, 0, 0.03));
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  min-height: 7.5rem;
}

.pts-logo-preview-horizontal {
  min-height: 5.5rem;
  background-size: contain;
}

.pts-logo-preview-vertical {
  min-height: 9rem;
  max-width: 7rem;
  margin-inline: auto;
  width: 100%;
}

.pts-logo-preview-normal {
  width: 7rem;
  height: 7rem;
  margin-inline: auto;
  border-radius: 1rem;
}

.pts-module-card-passive {
  opacity: 0.78;
}

.pts-firma-modules {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

.pts-firma-modules-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem 1.25rem;
}

.pts-firma-modules-title {
  margin: 0 0 0.35rem;
  font-size: 1rem;
  font-weight: 650;
  line-height: 1.3;
}

.pts-firma-modules-intro {
  margin: 0;
  max-width: 40rem;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--tblr-secondary, #667382);
}

.pts-firma-modules-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(4.5rem, auto));
  gap: 0.55rem;
}

.pts-firma-modules-metric {
  min-width: 4.75rem;
  padding: 0.55rem 0.75rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 85%, transparent);
  border-radius: 0.85rem;
  background: color-mix(in srgb, var(--tblr-bg-surface, #fff) 92%, transparent);
}

.pts-firma-modules-metric .subheader {
  display: block;
  margin-bottom: 0.15rem;
}

.pts-firma-modules-metric strong {
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.2;
}

.pts-firma-modules-metric.is-active {
  border-color: color-mix(in srgb, var(--tblr-success, #2fb344) 35%, transparent);
  background: color-mix(in srgb, var(--tblr-success, #2fb344) 8%, transparent);
}

.pts-firma-modules-metric.is-passive {
  border-color: color-mix(in srgb, var(--tblr-secondary, #667382) 28%, transparent);
}

.pts-firma-modules-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 0.85rem;
}

.pts-firma-modules-search {
  flex: 1 1 14rem;
  max-width: 22rem;
}

.pts-firma-modules-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.pts-firma-modules-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
}

.pts-firma-module-card {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  min-height: 100%;
  padding: 1rem 1.05rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 88%, transparent);
  border-radius: 1rem;
  background: var(--tblr-bg-surface, #fff);
  box-shadow: 0 1px 0 color-mix(in srgb, var(--tblr-body-color, #182433) 4%, transparent);
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease,
    opacity 0.15s ease,
    transform 0.15s ease;
}

.pts-firma-module-card.is-active {
  border-color: color-mix(in srgb, var(--tblr-primary, #206bc4) 28%, transparent);
  box-shadow:
    0 1px 0 color-mix(in srgb, var(--tblr-primary, #206bc4) 8%, transparent),
    0 0 0 1px color-mix(in srgb, var(--tblr-primary, #206bc4) 6%, transparent);
}

.pts-firma-module-card.is-passive {
  opacity: 0.88;
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, #f6f8fb) 55%, var(--tblr-bg-surface, #fff));
}

.pts-firma-module-card.is-locked {
  background: color-mix(in srgb, var(--tblr-primary, #206bc4) 4%, var(--tblr-bg-surface, #fff));
}

.pts-firma-module-card.is-busy {
  opacity: 0.72;
}

.pts-firma-module-card-main {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
}

.pts-firma-module-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 2.55rem;
  height: 2.55rem;
  border-radius: 0.85rem;
  background: color-mix(in srgb, var(--tblr-secondary, #667382) 12%, transparent);
  color: var(--tblr-secondary, #667382);
}

.pts-firma-module-icon.is-active {
  background: color-mix(in srgb, var(--tblr-primary, #206bc4) 14%, transparent);
  color: var(--tblr-primary, #206bc4);
}

.pts-firma-module-icon .icon,
.pts-firma-module-icon svg {
  width: 1.15rem;
  height: 1.15rem;
}

.pts-firma-module-name {
  font-weight: 650;
  line-height: 1.3;
}

.pts-firma-module-hint {
  margin: 0.25rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: var(--tblr-secondary, #667382);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.pts-firma-module-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: auto;
  padding-top: 0.15rem;
}

.pts-firma-module-switch .form-check-input {
  cursor: pointer;
}

.pts-firma-module-required {
  font-weight: 500;
}

@media (max-width: 1199.98px) {
  .pts-firma-modules-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .pts-firma-modules-grid {
    grid-template-columns: 1fr;
  }

  .pts-firma-modules-search {
    max-width: none;
  }

  .pts-firma-modules-metrics {
    width: 100%;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.pts-contracts-section .pts-contracts-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
}

.pts-contracts-layout {
  display: grid;
  grid-template-columns: minmax(14rem, 17.5rem) minmax(0, 1fr);
  gap: 0.85rem;
  flex: 1 1 auto;
  min-height: 22rem;
  height: 100%;
}

.pts-contracts-aside {
  display: flex;
  flex-direction: column;
  min-height: 0;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 88%, transparent);
  border-radius: 1rem;
  background: color-mix(in srgb, var(--tblr-bg-surface, #fff) 96%, var(--tblr-primary, #206bc4) 4%);
  overflow: hidden;
}

.pts-contracts-cat-nav {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 0.65rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.pts-contracts-cat-nav.is-dragging {
  cursor: grabbing;
}

.pts-contracts-cat-empty {
  margin: 0.55rem 0.25rem;
  font-size: 0.8rem;
  color: var(--tblr-secondary, #667382);
}

.pts-contracts-cat-card {
  display: flex;
  align-items: center;
  gap: 0.2rem;
  margin: 0;
  padding: 0.35rem 0.4rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 88%, transparent);
  border-radius: 0.85rem;
  background: var(--tblr-bg-surface, #fff);
  box-shadow: 0 1px 0 color-mix(in srgb, var(--tblr-body-color, #182433) 4%, transparent);
  transition:
    border-color 0.15s ease,
    background-color 0.15s ease,
    box-shadow 0.15s ease;
}

.pts-contracts-cat-card-all {
  padding: 0.65rem 0.8rem;
  cursor: pointer;
  color: inherit;
  text-align: left;
  width: 100%;
}

.pts-contracts-cat-card-portal {
  border-color: color-mix(in srgb, var(--tblr-primary, #206bc4) 22%, transparent);
  background: color-mix(in srgb, var(--tblr-primary, #206bc4) 8%, var(--tblr-bg-surface, #fff));
}

.pts-contracts-portal-doc {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 1rem 1.15rem 1.25rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 88%, transparent);
  border-radius: 1rem;
  background: var(--tblr-bg-surface, #fff);
}

.pts-contracts-cat-card-all:hover,
.pts-contracts-cat-card.is-reorderable:hover {
  border-color: color-mix(in srgb, var(--tblr-primary, #206bc4) 28%, transparent);
  background: color-mix(in srgb, var(--tblr-primary, #206bc4) 6%, var(--tblr-bg-surface, #fff));
}

.pts-contracts-cat-card.is-active,
.pts-contracts-cat-card-all.is-active {
  border-color: color-mix(in srgb, var(--tblr-primary, #206bc4) 36%, transparent);
  background: color-mix(in srgb, var(--tblr-primary, #206bc4) 12%, var(--tblr-bg-surface, #fff));
  box-shadow: 0 1px 0 color-mix(in srgb, var(--tblr-primary, #206bc4) 10%, transparent);
}

.pts-contracts-cat-card.pts-row-dragging {
  opacity: 0.72;
  box-shadow: 0 8px 18px color-mix(in srgb, var(--tblr-body-color, #182433) 12%, transparent);
}

.pts-contracts-cat-card.pts-row-drag-over {
  border-color: color-mix(in srgb, var(--tblr-primary, #206bc4) 55%, transparent);
}

.pts-contracts-cat-grip {
  flex: 0 0 auto;
  opacity: 0.55;
  cursor: grab;
}

.pts-contracts-cat-card:hover .pts-contracts-cat-grip,
.pts-contracts-cat-card.is-active .pts-contracts-cat-grip {
  opacity: 1;
}

.pts-contracts-cat-select {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0.4rem 0.35rem;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.pts-contracts-cat-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.875rem;
  font-weight: 600;
}

.pts-contracts-cat-delete {
  flex: 0 0 auto;
  opacity: 0.55;
}

.pts-contracts-cat-card:hover .pts-contracts-cat-delete,
.pts-contracts-cat-card.is-active .pts-contracts-cat-delete {
  opacity: 1;
}

.pts-contracts-aside-foot {
  padding: 0.65rem 0.7rem 0.75rem;
  border-top: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 85%, transparent);
}

.pts-contracts-cat-add {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.pts-contracts-cat-add .form-control {
  min-width: 0;
}

.pts-contracts-main {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  gap: 0.65rem;
}

.pts-contracts-main-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.pts-contracts-main-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 650;
  line-height: 1.25;
}

.pts-contracts-main-hint {
  margin: 0.2rem 0 0;
  font-size: 0.78rem;
  color: var(--tblr-secondary, #667382);
}

.pts-contracts-table-card {
  flex: 1 1 auto;
  min-height: 0;
}

@media (max-width: 991.98px) {
  .pts-contracts-layout {
    grid-template-columns: 1fr;
    height: auto;
  }

  .pts-contracts-aside {
    max-height: 16rem;
  }
}

.pts-user-role-card .card-header {
  border-bottom: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 80%, transparent);
}

.pts-user-role-list {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  max-height: 18rem;
  overflow: auto;
}

.pts-user-role-option {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin: 0;
  padding: 0.7rem 0.8rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 85%, transparent);
  border-radius: 0.75rem;
  cursor: pointer;
}

.pts-user-role-option.is-selected {
  border-color: color-mix(in srgb, var(--tblr-primary, #206bc4) 55%, transparent);
  background: color-mix(in srgb, var(--tblr-primary, #206bc4) 8%, transparent);
}

.pts-user-role-option .form-check-input {
  margin-top: 0.2rem;
}

/* Account → Language: one language per full-width row.
   Scroll via .pts-manage-main-frame > .pts-manage-content (overflow:auto) —
   do not trap overflow:hidden on content here (body overflow is forced visible
   by .pts-manage-content-detail rules, which previously left no scroller). */
.pts-manage-section-body.pts-account-language-body,
.pts-account-language-body {
  max-width: none;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.85rem;
  padding-block: 0.35rem 0.55rem;
  box-sizing: border-box;
  flex: 0 0 auto;
  min-height: 0;
  height: auto;
  max-height: none;
  overflow: visible;
}

.pts-account-language-body > .alert {
  width: 100%;
  margin-bottom: 0 !important;
}

.pts-account-language-search {
  width: 100%;
  flex: 0 0 auto;
}

.pts-account-language-search .form-control {
  width: 100%;
}

.pts-account-language-list {
  --pts-account-language-gap: 0.65rem;
  display: flex;
  flex-direction: column;
  gap: var(--pts-account-language-gap);
  width: 100%;
  max-width: none;
  margin-inline: 0;
}

.pts-account-language-option {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin: 0;
  padding: 0.95rem 1.05rem;
  width: 100%;
  min-width: 0;
  text-align: start;
  background: transparent;
  font: inherit;
  color: inherit;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 85%, transparent);
  border-radius: 0.75rem;
  cursor: pointer;
  justify-content: flex-start;
  box-sizing: border-box;
}

button.pts-account-language-option:disabled {
  opacity: 0.72;
  cursor: wait;
}

.pts-account-language-option.is-selected {
  border-color: color-mix(in srgb, var(--tblr-primary, #206bc4) 55%, transparent);
  background: color-mix(in srgb, var(--tblr-primary, #206bc4) 8%, transparent);
}

.pts-account-language-option.is-static {
  justify-content: center;
  text-align: center;
  cursor: default;
}

.pts-account-language-flag-wrap {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.1rem;
}

.pts-account-language-flag {
  display: block;
  width: 2.5rem;
  height: 1.875rem;
  object-fit: cover;
  border-radius: 0.28rem;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 70%, transparent);
  background: color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 35%, transparent);
}

.pts-account-language-flag--empty {
  width: 2.5rem;
  height: 1.875rem;
  border-radius: 0.28rem;
}

.pts-account-language-copy {
  flex: 1 1 auto;
  min-width: 0;
}

.pts-account-language-copy strong {
  display: block;
  font-weight: 600;
  line-height: 1.25;
}

.pts-account-language-check {
  display: inline-flex;
  flex: 0 0 auto;
  margin-inline-start: auto;
  color: var(--tblr-primary, #206bc4);
}

.pts-account-language-check .icon {
  width: 1rem;
  height: 1rem;
}

/* Account → Profile / Settings: consistent content padding, field column alignment, identity strip */
.pts-manage-content.pts-manage-content-detail > .pts-manage-section.pts-account-profile,
.pts-manage-content.pts-manage-content-detail > .pts-manage-section.pts-account-settings {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.pts-manage-content.pts-manage-content-detail > .pts-manage-section.pts-account-profile {
  width: 100%;
  max-width: none;
}

.pts-account-settings-appearance {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem 1rem;
  padding: 0.85rem 1rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color, #dce1e7) 80%, transparent);
  border-radius: 0.5rem;
  background: color-mix(in srgb, var(--tblr-bg-surface, #fff) 92%, var(--tblr-primary, #206bc4) 4%);
}

.pts-account-settings-appearance-copy {
  min-width: 0;
  flex: 1 1 14rem;
}

.pts-account-settings-appearance-title {
  font-weight: 600;
  line-height: 1.3;
  margin-bottom: 0.15rem;
}

.pts-account-settings-appearance .btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.pts-account-profile-head {
  margin-bottom: 0.85rem;
  padding-bottom: 0.75rem;
}

.pts-account-profile-head-copy {
  min-width: 0;
  flex: 1 1 14rem;
}

.pts-account-profile-head-copy h2 {
  margin: 0 0 0.2rem;
}

.pts-account-profile-body {
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding-top: 0.15rem;
}

.pts-account-profile-stack {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
  max-width: 44rem;
  width: 100%;
}

/* Account → Profile: fill the manage content pane (settings keep the 44rem stack). */
.pts-account-profile .pts-account-profile-body,
.pts-account-profile .pts-account-profile-stack,
.pts-account-profile .pts-account-profile-identity,
.pts-account-profile .pts-account-profile-fields,
.pts-account-profile .pts-account-profile-actions {
  max-width: none;
  width: 100%;
  box-sizing: border-box;
}

.pts-account-profile-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
}

.pts-account-profile-save {
  flex: 0 0 auto;
  min-width: 6.5rem;
}

.pts-account-profile-identity {
  display: flex;
  align-items: center;
  gap: 0.95rem;
  padding: 0.9rem 1rem;
  border: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
  border-radius: var(--tblr-border-radius);
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, var(--tblr-bg-surface)) 72%, var(--tblr-bg-surface));
}

.pts-account-profile-avatar {
  flex: 0 0 auto;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.pts-account-profile-identity-copy {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.pts-account-profile-name {
  font-weight: 650;
  font-size: 1.02rem;
  line-height: 1.3;
}

.pts-account-profile-meta {
  color: var(--tblr-secondary);
  font-size: 0.875rem;
  line-height: 1.35;
}

.pts-account-profile-meta-secondary {
  display: flex;
  flex-wrap: wrap;
  gap: 0.15rem 0.85rem;
  font-size: 0.8125rem;
}

.pts-account-profile-fields {
  --bs-gutter-y: 0.85rem;
}

.pts-account-profile-fields .form-label {
  margin-bottom: 0.35rem;
}

.pts-account-profile-fields .form-hint {
  margin-top: 0.3rem;
  margin-bottom: 0;
  line-height: 1.3;
}

.pts-account-profile-status {
  min-height: 1.25rem;
  font-size: 0.8125rem;
  line-height: 1.35;
}

@media (max-width: 767.98px) {
  .pts-account-profile-save {
    width: 100%;
  }

  .pts-account-profile-identity {
    align-items: flex-start;
  }
}

.pts-user-status-switch {
  display: inline-flex;
  align-items: center;
  min-height: 1.5rem;
}

.pts-user-status-switch .form-check-input {
  margin: 0;
  cursor: pointer;
}

.pts-user-online-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
}

.pts-user-online-dot-mark {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: var(--tblr-secondary, #667382);
  opacity: 0.45;
}

.pts-user-online-dot.is-online .pts-user-online-dot-mark {
  background: var(--tblr-success, #2fb344);
  opacity: 1;
  box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--tblr-success, #2fb344) 28%, transparent);
}

.pts-user-identity {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.pts-user-identity-name {
  font-weight: 600;
  line-height: 1.25;
}

.pts-user-identity-email {
  color: var(--tblr-secondary, #667382);
  font-size: 0.8125rem;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-user-features {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.pts-user-features-menu {
  display: inline-flex;
  margin-inline-start: 0.1rem;
}

.pts-user-feature-btn {
  --pts-user-feature-size: 2rem;
  width: var(--pts-user-feature-size);
  height: var(--pts-user-feature-size);
  min-width: var(--pts-user-feature-size);
  min-height: var(--pts-user-feature-size);
  padding: 0;
  border-radius: 0.6rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 88%, var(--tblr-primary));
  background: var(--tblr-bg-surface);
  color: color-mix(in srgb, var(--tblr-body-color) 78%, var(--tblr-secondary));
  box-shadow: 0 1px 2px color-mix(in srgb, #000 5%, transparent);
}

.pts-user-feature-btn .icon {
  width: 1.15rem !important;
  height: 1.15rem !important;
  opacity: 1;
  color: inherit;
  stroke-width: 1.75;
}

.pts-user-feature-btn:hover:not(:disabled),
.pts-user-feature-btn:focus-visible:not(:disabled),
.dropdown.show > .pts-user-feature-btn {
  border-color: color-mix(in srgb, var(--tblr-primary) 45%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-bg-surface));
  color: color-mix(in srgb, var(--tblr-primary) 82%, var(--tblr-body-color));
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--tblr-primary) 16%, transparent),
    0 2px 6px color-mix(in srgb, var(--tblr-primary) 12%, transparent);
}

.pts-user-features .pts-user-feature-btn:disabled {
  opacity: 0.38;
  filter: grayscale(0.2);
}

.pts-user-message-content {
  border: 0;
  border-radius: 1rem;
  box-shadow: 0 1.25rem 3rem color-mix(in srgb, var(--tblr-body-color) 18%, transparent);
  overflow: hidden;
}

.pts-user-message-eyebrow {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tblr-primary);
  margin-bottom: 0.25rem;
}

.pts-user-message-textarea {
  min-height: 7.5rem;
  resize: vertical;
  border-radius: 0.75rem;
}

.pts-user-monitor-dialog {
  max-width: min(96vw, 72rem);
  margin: 0.75rem auto;
}

.pts-user-monitor-content {
  border: 0;
  border-radius: 0.85rem;
  overflow: hidden;
  max-height: calc(100vh - 1.5rem);
}

.pts-user-monitor-status.is-live {
  color: var(--tblr-success, #2fb344);
  font-weight: 600;
}

.pts-user-monitor-status.is-connecting,
.pts-user-monitor-status.is-waiting {
  color: var(--tblr-warning, #f59f00);
}

.pts-user-monitor-status.is-ended {
  color: var(--tblr-secondary);
}

.pts-user-monitor-stage {
  position: relative;
  background: #0b1220;
  min-height: min(70vh, 36rem);
  max-height: calc(100vh - 7rem);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  user-select: none;
}

.pts-user-monitor-stage.is-intervene {
  cursor: crosshair;
}

.pts-user-monitor-frame {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 7rem);
  width: auto;
  height: auto;
  object-fit: contain;
  image-rendering: auto;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  pointer-events: none;
}

.pts-user-monitor-empty {
  color: color-mix(in srgb, #fff 72%, transparent);
  font-size: 0.95rem;
  padding: 2rem;
  text-align: center;
}

.pts-user-screenshot-modal .modal-footer {
  justify-content: flex-start;
  gap: 0.5rem;
}

.pts-user-screenshot-modal .modal-footer .btn .icon {
  width: 1rem;
  height: 1rem;
}

.pts-user-log-modal {
  z-index: 1055;
}

.pts-user-log-dialog {
  max-width: min(72rem, calc(100vw - 1.5rem));
}

.pts-user-log-content {
  border: 0;
  overflow: hidden;
  background: color-mix(in srgb, var(--tblr-bg-surface) 96%, var(--tblr-primary) 4%);
}

.pts-user-log-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.15rem 1.25rem 1rem;
  color: #fff;
  background:
    radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, var(--tblr-primary) 72%, #0f172a) 0%, transparent 55%),
    linear-gradient(135deg, color-mix(in srgb, var(--tblr-primary) 88%, #0b1220), color-mix(in srgb, var(--tblr-primary) 42%, #1e293b));
}

.pts-user-log-hero-main {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  min-width: 0;
}

.pts-user-log-hero-icon {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.9rem;
  background: color-mix(in srgb, #fff 18%, transparent);
  flex: 0 0 auto;
}

.pts-user-log-hero-icon .icon {
  width: 1.35rem;
  height: 1.35rem;
}

.pts-user-log-eyebrow {
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.82;
  margin-bottom: 0.15rem;
}

.pts-user-log-hero-sub {
  margin-top: 0.2rem;
  font-size: 0.86rem;
  opacity: 0.88;
  line-height: 1.35;
}

.pts-user-log-toolbar,
.pts-user-log-filters,
.pts-user-log-kpis,
.pts-user-log-table {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

.pts-user-log-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding-top: 1rem;
  padding-bottom: 0.65rem;
}

.pts-user-log-presets {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.pts-user-log-chip,
.pts-user-log-month {
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 80%, transparent);
  background: var(--tblr-bg-surface);
  color: var(--tblr-body-color);
  border-radius: 999px;
  padding: 0.35rem 0.8rem;
  font-size: 0.82rem;
  line-height: 1.2;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.pts-user-log-chip:hover,
.pts-user-log-month:hover {
  border-color: color-mix(in srgb, var(--tblr-primary) 45%, var(--tblr-border-color));
}

.pts-user-log-chip.is-active,
.pts-user-log-month.is-active {
  background: color-mix(in srgb, var(--tblr-primary) 14%, var(--tblr-bg-surface));
  border-color: color-mix(in srgb, var(--tblr-primary) 55%, var(--tblr-border-color));
  color: var(--tblr-primary);
  font-weight: 600;
}

.pts-user-log-search {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  min-width: min(22rem, 100%);
  flex: 1 1 16rem;
}

.pts-user-log-filters {
  display: grid;
  gap: 0.75rem;
  padding-bottom: 0.75rem;
}

.pts-user-log-range {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 0.55rem;
}

.pts-user-log-field {
  display: grid;
  gap: 0.2rem;
  margin: 0;
  font-size: 0.78rem;
  color: var(--tblr-secondary);
}

.pts-user-log-months {
  display: grid;
  gap: 0.45rem;
}

.pts-user-log-months-label {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.8rem;
  color: var(--tblr-secondary);
}

.pts-user-log-months-label .icon {
  width: 0.95rem;
  height: 0.95rem;
}

.pts-user-log-month-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.pts-user-log-month {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.pts-user-log-month span {
  font-variant-numeric: tabular-nums;
  opacity: 0.75;
}

.pts-user-log-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
  padding-bottom: 0.85rem;
}

.pts-user-log-kpi {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.8rem 0.95rem;
  border-radius: 0.85rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 75%, transparent);
  background: color-mix(in srgb, var(--tblr-bg-surface) 92%, var(--tblr-primary) 8%);
}

.pts-user-log-kpi .icon {
  width: 1.2rem;
  height: 1.2rem;
  color: var(--tblr-primary);
  flex: 0 0 auto;
}

.pts-user-log-kpi-value {
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}

.pts-user-log-kpi-label {
  font-size: 0.78rem;
  color: var(--tblr-secondary);
}

.pts-user-log-table {
  padding-bottom: 0.25rem;
}

.pts-user-log-when {
  display: grid;
  gap: 0.1rem;
  line-height: 1.2;
}

.pts-user-log-when span {
  font-size: 0.78rem;
  color: var(--tblr-secondary);
}

.pts-user-log-pill {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 0.18rem 0.55rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
  color: var(--tblr-primary);
  word-break: break-word;
}

.pts-user-log-path {
  font-size: 0.78rem;
  word-break: break-all;
}

.pts-user-ai-hero {
  background:
    radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, #f59e0b 55%, #0f172a) 0%, transparent 55%),
    linear-gradient(135deg, color-mix(in srgb, #d97706 82%, #0b1220), color-mix(in srgb, var(--tblr-primary) 38%, #1e293b));
}

.pts-user-ai-preview {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.35;
  font-size: 0.84rem;
}

.pts-user-special-header {
  align-items: flex-start;
}

.pts-user-special-header-main {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  padding-right: 0.5rem;
}

.pts-user-special-header-icon {
  display: grid;
  place-items: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 0.75rem;
  background: color-mix(in srgb, var(--tblr-primary) 14%, transparent);
  color: var(--tblr-primary);
  flex: 0 0 auto;
}

.pts-user-special-header-icon .icon {
  width: 1.15rem;
  height: 1.15rem;
}

.pts-user-special-header-sub {
  margin-top: 0.15rem;
  font-size: 0.82rem;
  color: var(--tblr-secondary);
}

.pts-user-special-list {
  display: grid;
  gap: 0.65rem;
}

.pts-user-special-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.8rem;
  margin: 0;
  padding: 0.9rem 1rem;
  border-radius: 0.9rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 80%, transparent);
  background: var(--tblr-bg-surface);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.pts-user-special-row:hover {
  border-color: color-mix(in srgb, var(--tblr-primary) 40%, var(--tblr-border-color));
}

.pts-user-special-row.is-on {
  border-color: color-mix(in srgb, var(--tblr-primary) 50%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 8%, var(--tblr-bg-surface));
}

.pts-user-special-row-icon {
  display: grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 0.7rem;
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
  color: var(--tblr-primary);
}

.pts-user-special-row-icon .icon {
  width: 1.1rem;
  height: 1.1rem;
}

.pts-user-special-row-title {
  font-weight: 600;
  line-height: 1.25;
}

.pts-user-special-row-hint {
  margin-top: 0.15rem;
  font-size: 0.8rem;
  color: var(--tblr-secondary);
  line-height: 1.35;
}

.pts-user-special-switch .form-check-input {
  width: 2.4rem;
  height: 1.25rem;
  margin: 0;
  cursor: pointer;
}

.pts-user-special-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  max-width: 16rem;
}

.pts-user-special-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.16rem 0.5rem;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 600;
  line-height: 1.2;
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
  color: var(--tblr-primary);
  white-space: nowrap;
}

.pts-user-ai-settings-modes {
  display: grid;
  gap: 0.55rem;
}

.pts-user-ai-settings-mode {
  display: grid;
  gap: 0.2rem;
  margin: 0;
  padding: 0.85rem 0.95rem;
  border-radius: 0.85rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 80%, transparent);
  background: var(--tblr-bg-surface);
  cursor: pointer;
}

.pts-user-ai-settings-mode input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.pts-user-ai-settings-mode.is-active {
  border-color: color-mix(in srgb, var(--tblr-primary) 50%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 8%, var(--tblr-bg-surface));
}

.pts-user-ai-settings-mode-title {
  font-weight: 600;
}

.pts-user-ai-settings-mode-hint {
  font-size: 0.8rem;
  color: var(--tblr-secondary);
  line-height: 1.35;
}

.pts-user-ai-settings-quotas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.pts-user-ai-settings-custom {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
}

.pts-user-ai-settings-custom .form-control {
  max-width: 10rem;
}

.pts-user-ai-settings-modal {
  z-index: 1055;
}

.pts-user-ai-settings-dialog {
  width: min(40rem, calc(100vw - 1.5rem));
  max-width: min(40rem, calc(100vw - 1.5rem));
  margin-left: auto;
  margin-right: auto;
}

.pts-user-ai-settings-content {
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 14%, var(--tblr-border-color));
  border-radius: 1rem;
  overflow: hidden;
  background: var(--tblr-bg-surface);
  box-shadow:
    0 22px 56px -28px color-mix(in srgb, var(--tblr-primary) 42%, transparent),
    0 0.35rem 1.25rem color-mix(in srgb, var(--tblr-body-color) 8%, transparent);
}

.pts-user-ai-settings-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1rem 1.25rem 0.95rem;
  border-bottom: 1px solid color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-border-color));
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--tblr-primary) 7%, var(--tblr-bg-surface)) 0%,
    var(--tblr-bg-surface) 100%
  );
}

.pts-user-ai-settings-heading {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  min-width: 0;
}

.pts-user-ai-settings-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: calc(var(--tblr-border-radius) + 0.15rem);
  color: color-mix(in srgb, var(--tblr-primary) 78%, #fff);
  background: color-mix(in srgb, var(--tblr-primary) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 22%, transparent);
  flex: 0 0 auto;
}

.pts-user-ai-settings-icon .icon {
  width: 1.2rem;
  height: 1.2rem;
}

.pts-user-ai-settings-titles {
  min-width: 0;
}

.pts-user-ai-settings-eyebrow {
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--tblr-secondary);
  margin-bottom: 0.12rem;
}

.pts-user-ai-settings-header .modal-title {
  font-size: 1.05rem;
  font-weight: 650;
  letter-spacing: -0.01em;
}

.pts-user-ai-settings-subtitle {
  margin-top: 0.2rem;
  font-size: 0.8125rem;
  line-height: 1.35;
  color: color-mix(in srgb, var(--tblr-body-color) 62%, var(--tblr-secondary));
}

.pts-user-ai-settings-body {
  padding: 1.15rem 1.25rem 0.35rem;
  display: grid;
  gap: 1.15rem;
}

.pts-user-ai-settings-section {
  display: grid;
  gap: 0.55rem;
}

.pts-user-ai-settings-section-label {
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--tblr-secondary);
}

.pts-user-ai-settings-modes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.pts-user-ai-settings-mode {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 0.7rem;
  margin: 0;
  padding: 0.95rem 1rem;
  border-radius: 0.9rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 80%, transparent);
  background: color-mix(in srgb, var(--tblr-bg-surface) 94%, var(--tblr-bg-surface-secondary));
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.pts-user-ai-settings-mode:hover {
  border-color: color-mix(in srgb, var(--tblr-primary) 35%, var(--tblr-border-color));
}

.pts-user-ai-settings-mode.is-active {
  border-color: color-mix(in srgb, var(--tblr-primary) 52%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 8%, var(--tblr-bg-surface));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--tblr-primary) 18%, transparent);
}

.pts-user-ai-settings-mode input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.pts-user-ai-settings-mode-icon {
  display: grid;
  place-items: center;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 0.7rem;
  color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
}

.pts-user-ai-settings-mode-icon .icon {
  width: 1.05rem;
  height: 1.05rem;
}

.pts-user-ai-settings-mode-copy {
  display: grid;
  gap: 0.22rem;
  min-width: 0;
}

.pts-user-ai-settings-mode-title {
  font-weight: 650;
  line-height: 1.25;
}

.pts-user-ai-settings-mode-hint {
  font-size: 0.8rem;
  color: var(--tblr-secondary);
  line-height: 1.4;
}

.pts-user-ai-settings-quota-panel {
  display: grid;
  gap: 0.75rem;
  padding: 0.95rem 1rem;
  border-radius: 0.9rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 78%, transparent);
  background: color-mix(in srgb, var(--tblr-bg-surface) 94%, var(--tblr-bg-surface-secondary));
}

.pts-user-ai-settings-usage {
  display: grid;
  gap: 0.4rem;
}

.pts-user-ai-settings-usage-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
  font-size: 0.84rem;
}

.pts-user-ai-settings-usage-meta strong {
  font-variant-numeric: tabular-nums;
}

.pts-user-ai-settings-usage-bar {
  height: 0.4rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--tblr-border-color) 70%, transparent);
  overflow: hidden;
}

.pts-user-ai-settings-usage-bar > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--tblr-primary), color-mix(in srgb, var(--tblr-primary) 65%, #f59e0b));
  transition: width 0.2s ease;
}

.pts-user-ai-settings-quota-hint {
  margin: 0;
  font-size: 0.8rem;
  color: var(--tblr-secondary);
  line-height: 1.4;
}

.pts-user-ai-settings-quotas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.pts-user-ai-settings-quota-chip {
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 80%, transparent);
  background: var(--tblr-bg-surface);
  color: var(--tblr-body-color);
  border-radius: 999px;
  padding: 0.38rem 0.8rem;
  font-size: 0.82rem;
  line-height: 1.2;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.pts-user-ai-settings-quota-chip:hover {
  border-color: color-mix(in srgb, var(--tblr-primary) 45%, var(--tblr-border-color));
}

.pts-user-ai-settings-quota-chip.is-active {
  background: color-mix(in srgb, var(--tblr-primary) 14%, var(--tblr-bg-surface));
  border-color: color-mix(in srgb, var(--tblr-primary) 55%, var(--tblr-border-color));
  color: var(--tblr-primary);
  font-weight: 650;
}

.pts-user-ai-settings-custom {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.pts-user-ai-settings-custom .form-control {
  flex: 1 1 10rem;
  max-width: 14rem;
  min-height: 2.25rem;
}

.pts-user-ai-settings-footer {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.85rem 1.25rem 1rem;
  border-top: 1px solid color-mix(in srgb, var(--tblr-border-color) 80%, transparent);
  background: color-mix(in srgb, var(--tblr-bg-surface) 94%, var(--tblr-bg-surface-secondary));
}

@media (max-width: 640px) {
  .pts-user-ai-settings-modes {
    grid-template-columns: 1fr;
  }

  .pts-user-ai-settings-dialog {
    width: min(100vw - 1rem, 40rem);
    max-width: calc(100vw - 1rem);
  }

  .pts-user-ai-settings-header,
  .pts-user-ai-settings-body,
  .pts-user-ai-settings-footer {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

@media (max-width: 720px) {
  .pts-user-log-kpis {
    grid-template-columns: 1fr;
  }

  .pts-user-log-hero {
    padding: 1rem;
  }

  .pts-user-log-toolbar,
  .pts-user-log-filters,
  .pts-user-log-kpis,
  .pts-user-log-table {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

.pts-inbound-message {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: grid;
  place-items: center;
  pointer-events: auto;
}

.pts-inbound-message-backdrop {
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, var(--tblr-body-color) 45%, transparent);
  backdrop-filter: blur(4px);
}

.pts-inbound-message-dialog {
  position: relative;
  z-index: 1;
  width: min(28rem, calc(100vw - 2rem));
  animation: pts-inbound-pop 0.28s ease-out;
}

.pts-inbound-message-card {
  background: var(--tblr-bg-surface, #fff);
  color: var(--tblr-body-color);
  border-radius: 1.1rem;
  padding: 1.35rem 1.4rem 1.2rem;
  box-shadow: 0 1.5rem 3rem color-mix(in srgb, #000 28%, transparent);
  text-align: center;
}

.pts-inbound-message-eyebrow {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--tblr-primary);
  margin-bottom: 0.45rem;
}

.pts-inbound-message-from {
  font-weight: 650;
  margin-bottom: 0.55rem;
}

.pts-inbound-message-body {
  white-space: pre-wrap;
  line-height: 1.45;
  margin-bottom: 1.1rem;
  font-size: 1.02rem;
}

.pts-inbound-message-ok {
  min-width: 7rem;
}

@keyframes pts-inbound-pop {
  from {
    opacity: 0;
    transform: translateY(0.6rem) scale(0.98);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.pts-user-screen {
  display: inline-block;
  max-width: 16rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: bottom;
}

.pts-user-last-active.is-online {
  color: var(--tblr-body-color, inherit);
}

.pts-region-intro {
  padding: 1.1rem 1.25rem;
  border-radius: 1rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 80%, transparent);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--tblr-primary, #206bc4) 8%, transparent), transparent 55%),
    var(--tblr-bg-surface, #fff);
}

.pts-region-intro-title {
  margin: 0 0 0.35rem;
  font-size: 1.15rem;
  font-weight: 650;
}

.pts-region-intro-text {
  margin: 0;
  color: var(--tblr-secondary, #667382);
  max-width: 52rem;
}

.pts-region-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.15rem 1.35rem;
}

@media (max-width: 991.98px) {
  .pts-region-fields {
    grid-template-columns: 1fr;
  }
}

.pts-region-field .form-label {
  margin-bottom: 0.2rem;
  font-weight: 600;
}

.pts-region-field-hint {
  margin: 0 0 0.45rem;
  font-size: 0.82rem;
  line-height: 1.4;
  color: var(--tblr-secondary, #667382);
}

.pts-region-field .form-select {
  max-width: 100%;
}

.pts-region-actions {
  display: flex;
  justify-content: flex-end;
  padding-top: 0.25rem;
}

.pts-firma-profile-form {
  width: 100%;
  max-width: none;
  gap: 1.5rem;
}

.pts-firma-profile-head {
  display: grid;
  grid-template-columns: 10.5rem minmax(0, 1fr);
  gap: 1.25rem 1.5rem;
  align-items: start;
}

.pts-firma-profile-logo-panel {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.65rem;
}

.pts-firma-profile-logo-panel .pts-logo-preview-normal {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  margin-inline: 0;
  max-width: none;
}

.pts-firma-profile-logo-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.pts-firma-profile-logo-hint {
  margin-bottom: 0;
}

.pts-firma-profile-fields {
  display: grid;
  gap: 1rem 1.25rem;
}

.pts-firma-profile-fields-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pts-firma-profile-fields-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pts-firma-profile-group {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  width: 100%;
  padding-bottom: 1.35rem;
  border-bottom: 1px solid color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 80%, transparent);
}

.pts-firma-profile-form > .pts-firma-profile-group:last-of-type {
  border-bottom: 0;
  padding-bottom: 0;
}

.pts-firma-profile-group-title {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 650;
  line-height: 1.3;
}

.pts-firma-profile-span {
  grid-column: 1 / -1;
}

@media (max-width: 991.98px) {
  .pts-firma-profile-head {
    grid-template-columns: 1fr;
  }

  .pts-firma-profile-logo-panel {
    max-width: 11rem;
  }

  .pts-firma-profile-fields-2,
  .pts-firma-profile-fields-3 {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  .pts-firma-profile-fields-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.pts-manage-content.pts-manage-content-detail:has(> .pts-firma-role-plan) {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0;
}

.pts-manage-content.pts-manage-content-detail:has(> .pts-firma-role-plan) > .alert {
  margin: 0.85rem 1.15rem 0;
}

.pts-firma-role-modal {
  --pts-firma-role-modal-width: min(72rem, calc(100vw - 1.5rem));
  width: var(--pts-firma-role-modal-width);
  max-width: var(--pts-firma-role-modal-width);
}

.pts-firma-user-special-board {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  max-height: min(32rem, calc(100vh - 18rem));
  overflow: auto;
}

.pts-firma-user-modal {
  width: min(40rem, calc(100vw - 1.5rem));
}

.pts-firma-user-modal .pts-firma-user-special-board {
  max-height: min(32rem, calc(100vh - 18rem));
}

.pts-manage-content.pts-manage-content-detail > .pts-firma-role-plan {
  flex: 1 1 auto;
  min-height: 0;
}

.pts-firma-role-plan {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
}

.pts-firma-role-plan-head {
  flex: 0 0 auto;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.25rem 1.75rem;
  padding: 1.15rem 1.35rem 1.05rem;
  border-bottom: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
  background: color-mix(in srgb, var(--tblr-bg-surface) 88%, var(--tblr-bg-surface-tertiary, var(--tblr-bg-surface)));
}

.pts-firma-role-plan-identity {
  flex: 1 1 28rem;
  min-width: 0;
}

.pts-firma-role-plan-title {
  margin: 0 0 0.35rem;
  font-size: 1.15rem;
  font-weight: 650;
  line-height: 1.3;
}

.pts-firma-role-plan-lead {
  margin: 0 0 0.85rem;
  color: var(--tblr-secondary);
  line-height: 1.45;
}

.pts-firma-role-plan-name {
  max-width: 28rem;
}

.pts-firma-role-plan-summary {
  margin: 0.65rem 0 0;
  color: var(--tblr-secondary);
  font-weight: 550;
}

.pts-firma-role-plan-filter {
  flex: 0 1 16rem;
  min-width: 12rem;
}

.pts-firma-role-plan-board {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding: 1.15rem 1.35rem 1.35rem;
}

.pts-firma-role-plan-empty {
  margin: 0;
  padding: 2.5rem 1rem;
  text-align: center;
  color: var(--tblr-secondary);
}

.pts-firma-role-plan-row {
  display: grid;
  grid-template-columns: minmax(14rem, 1.15fr) minmax(22rem, 2fr) auto;
  gap: 1rem 1.35rem;
  align-items: center;
  padding: 1.15rem 1.25rem;
  border: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
  border-radius: 0.85rem;
  background: var(--tblr-bg-surface);
}

.pts-firma-role-plan-module {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  min-width: 0;
}

.pts-firma-role-plan-icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.55rem;
  height: 2.55rem;
  border-radius: 0.7rem;
  background: color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-bg-surface));
  color: var(--tblr-primary);
}

.pts-firma-role-plan-icon .icon {
  width: 1.2rem;
  height: 1.2rem;
}

.pts-firma-role-plan-module-text {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.pts-firma-role-plan-module-text strong {
  font-weight: 650;
  line-height: 1.3;
}

.pts-firma-role-plan-module-text small {
  color: var(--tblr-secondary);
  line-height: 1.4;
}

.pts-firma-role-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.pts-firma-role-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-height: 2.85rem;
  min-width: 7.25rem;
  padding: 0.5rem 0.95rem;
  border: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
  border-radius: 0.7rem;
  background: color-mix(in srgb, var(--tblr-bg-surface) 88%, var(--tblr-bg-surface-tertiary, var(--tblr-bg-surface)));
  color: var(--tblr-body-color);
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
}

.pts-firma-role-chip:disabled {
  cursor: default;
  opacity: 0.65;
}

.pts-firma-role-chip .icon {
  width: 1.05rem;
  height: 1.05rem;
}

.pts-firma-role-chip.is-on {
  background: color-mix(in srgb, var(--tblr-primary) 16%, var(--tblr-bg-surface));
  border-color: color-mix(in srgb, var(--tblr-primary) 42%, var(--tblr-border-color));
  color: var(--tblr-primary);
}

.pts-firma-role-chip:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--tblr-primary) 32%, var(--tblr-border-color));
}

.pts-firma-role-plan-row-tools {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.35rem;
}

.pts-firma-role-row-tool {
  min-height: 2.35rem;
  padding-inline: 0.75rem;
  font-weight: 550;
}

.pts-firma-role-count-value {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}

@media (max-width: 991.98px) {
  .pts-firma-role-plan-head {
    flex-direction: column;
    align-items: stretch;
  }

  .pts-firma-role-plan-filter,
  .pts-firma-role-plan-name {
    max-width: none;
  }

  .pts-firma-role-plan-row {
    grid-template-columns: 1fr;
  }

  .pts-firma-role-plan-row-tools {
    justify-content: flex-start;
  }
}

[data-bs-theme="dark"] .pts-region-intro {
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--tblr-primary, #206bc4) 14%, transparent), transparent 55%),
    color-mix(in srgb, var(--tblr-bg-surface, #1b2434) 92%, #000);
}


.pts-customer-detail-def-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem 1rem;
}

.pts-customer-def-field {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  min-width: 0;
}

.pts-customer-def-field-label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: color-mix(in srgb, var(--tblr-primary) 68%, var(--tblr-body-color));
}

.pts-customer-def-field-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: calc(var(--tblr-border-radius) + 0.05rem);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 18%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 7%, var(--tblr-bg-surface));
  flex-shrink: 0;
}

.pts-customer-def-field-icon .icon {
  width: 0.95rem;
  height: 0.95rem;
}

.pts-customer-def-field .form-select {
  border-width: 1px;
}

@media (max-width: 767.98px) {
  .pts-customer-detail-def-grid {
    grid-template-columns: 1fr;
  }
}

.pts-customer-detail-general .pts-manage-section-body {
  padding-bottom: 0.55rem;
}

.pts-customer-detail-general .pts-customer-form-sections {
  gap: 0.7rem;
}

.pts-customer-detail-general .pts-customer-form-section .form-label {
  margin-bottom: 0.22rem;
}

.pts-customer-detail-general .pts-employee-options-stack {
  justify-content: center;
  min-height: 100%;
  padding-top: 0;
}

.pts-customer-detail-general .pts-employee-general-names-row {
  margin-top: 0.7rem;
  margin-bottom: 0.7rem;
}

.pts-customer-detail-general .form-control.pts-employee-identity-no {
  background-color: #fce7f3;
}

.pts-customer-detail-general .form-control.pts-employee-identity-no:focus {
  background-color: #fce7f3;
}

[data-bs-theme="dark"] .pts-customer-detail-general .form-control.pts-employee-identity-no,
[data-bs-theme="dark"] .pts-customer-detail-general .form-control.pts-employee-identity-no:focus {
  background-color: color-mix(in srgb, #fce7f3 22%, var(--tblr-bg-forms, var(--tblr-bg-surface)));
}

.pts-employee-phone {
  position: relative;
  min-width: 0;
}

.pts-employee-phone-shell {
  display: flex;
  align-items: stretch;
  min-width: 0;
  min-height: 2.25rem;
  border: var(--tblr-border-width, 1px) solid var(--tblr-border-color, #dce1e7);
  border-radius: var(--tblr-border-radius, 0.375rem);
  background-color: var(--tblr-bg-forms, var(--tblr-bg-surface, #fff));
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  overflow: hidden;
}

.pts-employee-phone-shell:focus-within {
  border-color: rgba(var(--tblr-primary-rgb, 32, 107, 196), 0.55);
  box-shadow: 0 0 0 0.2rem rgba(var(--tblr-primary-rgb, 32, 107, 196), 0.18);
}

.pts-employee-phone-dial-trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex: 0 0 auto;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  min-height: 100%;
  padding: 0.35rem 0.55rem;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.pts-employee-phone-dial-trigger:disabled {
  cursor: not-allowed;
  opacity: 0.65;
}

.pts-employee-phone-dial-trigger:hover:not(:disabled),
.pts-employee-phone-dial-trigger:focus-visible {
  background: color-mix(in srgb, var(--tblr-primary, #206bc4) 8%, transparent);
  outline: none;
}

.pts-employee-phone-dial-trigger .pts-country-flag {
  width: 1.25rem;
  height: 0.95rem;
  object-fit: cover;
  border-radius: 2px;
  flex: 0 0 auto;
}

.pts-employee-phone-dial-code {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  font-weight: 500;
}

.pts-employee-phone-divider {
  flex: 0 0 1px;
  align-self: stretch;
  margin: 0.35rem 0;
  background: var(--tblr-border-color, #dce1e7);
}

.pts-employee-phone-national {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  min-height: 100%;
  padding: 0.35rem 0.7rem 0.35rem 0.55rem;
  color: inherit;
}

.pts-employee-phone-national:focus {
  outline: none;
  box-shadow: none !important;
}

.pts-employee-phone.is-valid .pts-employee-phone-shell {
  border-color: #2fb344;
  box-shadow: 0 0 0 0.15rem rgba(47, 179, 68, 0.18);
}

.pts-employee-phone.is-valid .pts-employee-phone-shell:focus-within {
  border-color: #2fb344;
  box-shadow: 0 0 0 0.2rem rgba(47, 179, 68, 0.28);
}

.pts-employee-phone.is-invalid .pts-employee-phone-shell {
  border-color: #d63939;
  box-shadow: 0 0 0 0.15rem rgba(214, 57, 57, 0.18);
}

.pts-employee-phone.is-invalid .pts-employee-phone-shell:focus-within {
  border-color: #d63939;
  box-shadow: 0 0 0 0.2rem rgba(214, 57, 57, 0.28);
}

.pts-employee-phone-menu {
  min-width: 16rem;
}

.pts-customer-detail-general .form-control.pts-employee-email.is-valid {
  border-color: #2fb344;
  box-shadow: 0 0 0 0.15rem rgba(47, 179, 68, 0.18);
  background-image: none;
  padding-right: 0.75rem;
}

.pts-customer-detail-general .form-control.pts-employee-email.is-valid:focus {
  border-color: #2fb344;
  box-shadow: 0 0 0 0.2rem rgba(47, 179, 68, 0.28);
}

.pts-customer-detail-general .form-control.pts-employee-email.is-invalid {
  border-color: #d63939;
  box-shadow: 0 0 0 0.15rem rgba(214, 57, 57, 0.18);
  background-image: none;
  padding-right: 0.75rem;
}

.pts-customer-detail-general .form-control.pts-employee-email.is-invalid:focus {
  border-color: #d63939;
  box-shadow: 0 0 0 0.2rem rgba(214, 57, 57, 0.28);
}


.pts-employee-official-section {
  position: relative;
  max-width: 100%;
  overflow: visible;
}

.pts-employee-official-rows {
  --pts-official-passport-h: 28rem;
  --pts-official-passport-w: 19rem;
  --pts-official-id-h: 13.75rem; /* (28rem - 0.5rem gap) / 2 */
  /* Resmi Belge: license front/back match ID front/back height. */
  --pts-official-license-h: var(--pts-official-id-h);
  --pts-official-bsn-h: 16.25rem;
  --pts-official-bank-h: var(--pts-official-bsn-h);
  --pts-official-card-w: 17.5rem;
  --pts-official-stack-gap: 0.5rem;
  display: flex;
  flex-direction: column;
  max-width: 100%;
}

.pts-employee-official-idpass {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
  gap: var(--pts-official-stack-gap);
  max-width: 100%;
}

.pts-employee-official-idpass-passport {
  display: flex;
  flex: 0 0 var(--pts-official-passport-w);
  width: var(--pts-official-passport-w);
  max-width: 100%;
  min-width: 0;
  height: var(--pts-official-passport-h);
}

.pts-employee-official-idpass-ids,
.pts-employee-official-idpass-licenses {
  display: flex;
  flex-direction: column;
  flex: 0 0 var(--pts-official-card-w);
  width: var(--pts-official-card-w);
  max-width: 100%;
  gap: var(--pts-official-stack-gap);
  min-width: 0;
  height: var(--pts-official-passport-h);
  overflow: hidden;
}

/* Driving licence: switch in its own top-right row — never overlays / crushes cards. */
.pts-employee-license-panel {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.65rem;
  min-width: 0;
  width: 100%;
}

.pts-employee-license-panel-switch {
  position: static;
  align-self: flex-end;
  flex: 0 0 auto;
  max-width: min(100%, 16.5rem);
  z-index: auto;
}

.pts-employee-option-corner .pts-employee-option-section-row {
  max-width: none;
  margin: 0;
}

.pts-employee-option-corner .pts-employee-option-icon {
  flex: 0 1 auto;
  width: auto;
  min-width: 11.5rem;
  padding: 0.45rem 0.65rem;
  box-shadow: 0 1px 3px color-mix(in srgb, #000 8%, transparent);
}

.pts-employee-license-panel .pts-employee-license-docs-section,
.pts-employee-license-panel > .pts-manage-section.pts-employee-license-docs-section {
  margin-top: 0;
  padding-top: 0;
  min-width: 0;
  width: 100%;
}

.pts-employee-license-panel .pts-employee-license-meta {
  box-sizing: border-box;
  width: 100%;
}

.pts-employee-license-layout {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  width: 100%;
  min-width: 0;
}

.pts-employee-license-layout .pts-employee-official-idpass--license-only {
  width: 100%;
  max-width: 100%;
}

.pts-employee-license-description {
  resize: vertical;
  min-height: calc(1.5em * 5 + 0.75rem);
}

/* Driving licence category: front + back side-by-side; taller cards than Resmi Belge. */
.pts-employee-license-docs-section .pts-employee-official-section {
  margin-top: 0;
}

.pts-employee-license-docs-section .pts-employee-official-rows {
  /* Ehliyet only — taller than Resmi Belge ID-matched cards. */
  --pts-official-license-h: 22rem;
}

/* Housing: corner switch + flat address on section ground (no card). */
.pts-employee-housing-panel {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.85rem;
  min-width: 0;
  width: 100%;
}

.pts-employee-housing-panel-switch {
  position: static;
  align-self: flex-end;
  flex: 0 0 auto;
  max-width: min(100%, 16.5rem);
}

.pts-employee-housing-flat {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  width: 100%;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.pts-employee-housing-flat-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.55rem 1rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid color-mix(in srgb, var(--tblr-border-color, #dce1e7) 85%, transparent);
}

.pts-employee-housing-flat-heading {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
  flex: 1 1 12rem;
}

.pts-employee-housing-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--tblr-secondary, #6c7a91);
  line-height: 1.3;
}

.pts-employee-housing-eyebrow .icon {
  width: 0.9rem;
  height: 0.9rem;
  opacity: 0.85;
}

.pts-employee-housing-flat-title {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

.pts-employee-housing-actions {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.2rem;
  flex: 0 0 auto;
  margin-left: auto;
}

.pts-employee-housing-action {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding-inline: 0.45rem;
}

.pts-employee-housing-action .icon {
  width: 1rem;
  height: 1rem;
}

.pts-employee-housing-empty {
  margin: 0;
  padding: 0.35rem 0 0.15rem;
  font-size: 0.9375rem;
  line-height: 1.45;
}

.pts-employee-housing-layout {
  display: grid;
  grid-template-columns: minmax(16rem, 1.15fr) minmax(0, 1fr);
  gap: 1rem 1.25rem;
  align-items: stretch;
  min-width: 0;
  width: 100%;
}

.pts-employee-housing-map {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
}

.pts-employee-housing-map .pts-employee-address-map {
  min-height: 17.5rem;
  height: 100%;
}

.pts-employee-housing-map .pts-employee-address-map-body,
.pts-employee-housing-map .pts-employee-address-map .pts-fleetgo-map {
  min-height: 15rem;
}

.pts-employee-housing-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 6.5rem;
  grid-template-areas:
    "street number"
    "postal  city"
    "country country";
  gap: 0.7rem 0.75rem;
  align-content: start;
  margin: 0;
  min-width: 0;
}

.pts-employee-housing-field {
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  min-width: 0;
}

.pts-employee-housing-field--street {
  grid-area: street;
}

.pts-employee-housing-field--number {
  grid-area: number;
}

.pts-employee-housing-field--postal {
  grid-area: postal;
}

.pts-employee-housing-field--city {
  grid-area: city;
}

.pts-employee-housing-field--country {
  grid-area: country;
}

.pts-employee-housing-field dt {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--tblr-secondary, #6c7a91);
  line-height: 1.25;
}

.pts-employee-housing-field dd {
  margin: 0;
  padding: 0.55rem 0.7rem;
  min-height: 2.35rem;
  font-size: 0.9375rem;
  font-weight: 550;
  line-height: 1.35;
  color: var(--tblr-body-color, #1e293b);
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, #f1f5f9) 55%, transparent);
  border: 1px solid color-mix(in srgb, var(--tblr-border-color, #dce1e7) 70%, transparent);
  border-radius: var(--tblr-border-radius, 0.5rem);
  overflow-wrap: anywhere;
  box-sizing: border-box;
}

@media (max-width: 991.98px) {
  .pts-employee-housing-layout {
    grid-template-columns: 1fr;
  }

  .pts-employee-housing-map .pts-employee-address-map {
    min-height: 14.5rem;
  }
}

@media (max-width: 767.98px) {
  .pts-employee-housing-action span {
    display: none;
  }

  .pts-employee-housing-fields {
    grid-template-columns: minmax(0, 1fr) 5.5rem;
  }
}

/* Insurance import: 2 category ZIP drops → confirm → BSN scan */
.pts-page-detail.pts-employee-insurance-import-detail,
.pts-page-detail.pts-employee-runtime-import-detail {
  display: flex;
  flex-direction: column;
  min-height: min(70vh, 44rem);
}

.pts-employee-runtime-import-body {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  padding: 0.35rem 0 0.15rem;
}

.pts-employee-runtime-import-drop {
  cursor: pointer;
}

.pts-employee-runtime-import-drop .pts-employee-insurance-cat-count {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.pts-employee-runtime-import-drop .pts-employee-insurance-cat-count .icon {
  width: 0.95rem;
  height: 0.95rem;
}

.pts-employee-runtime-results-scroll {
  max-height: min(55vh, 28rem);
  overflow: auto;
}

.pts-employee-insurance-import-body {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  min-height: 0;
  padding: 0.35rem 0 0.15rem;
}

.pts-employee-insurance-section-title {
  margin: 0 0 0.45rem;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
}

.pts-employee-insurance-cat-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
  width: 100%;
}

@media (max-width: 1100px) {
  .pts-employee-insurance-cat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.pts-employee-insurance-cat-col {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  min-width: 0;
}

.pts-employee-insurance-cat-drop {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.9rem;
  align-items: center;
  width: 100%;
  min-height: 8.5rem;
  padding: 1.15rem 1.1rem;
  border: 1.5px dashed color-mix(in srgb, var(--tblr-primary) 35%, var(--tblr-border-color));
  border-radius: 1rem;
  background:
    linear-gradient(
      160deg,
      color-mix(in srgb, var(--tblr-primary) 8%, transparent),
      transparent 55%
    ),
    color-mix(in srgb, var(--tblr-bg-surface) 96%, transparent);
  cursor: pointer;
  transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
  box-sizing: border-box;
}

.pts-employee-insurance-cat-drop.has-files {
  border-style: solid;
}

.pts-employee-insurance-cat-count {
  display: inline-flex;
  align-items: center;
  margin-top: 0.15rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--tblr-primary);
}

.pts-employee-insurance-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 0.85rem;
}

.pts-employee-insurance-zorg-table-panel {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  width: 100%;
  min-width: 0;
  padding: 0.85rem 0.95rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 22%, var(--tblr-border-color));
  border-radius: 0.85rem;
  background: color-mix(in srgb, var(--tblr-primary) 5%, var(--tblr-bg-surface));
}

.pts-employee-insurance-zorg-table-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.55rem 0.85rem;
}

.pts-employee-insurance-zorg-table {
  --tblr-table-cell-padding-x: 0.55rem;
  font-size: 0.8125rem;
}

.pts-employee-insurance-zorg-table th,
.pts-employee-insurance-zorg-table td {
  white-space: nowrap;
  vertical-align: middle;
}

.pts-employee-insurance-zorg-status {
  font-weight: 650;
  font-size: 0.78rem;
}

.pts-employee-insurance-zorg-status.is-pending {
  color: var(--tblr-secondary);
}

.pts-employee-insurance-zorg-status.is-reading {
  color: var(--tblr-info);
}

.pts-employee-insurance-zorg-status.is-ok {
  color: var(--tblr-success);
}

.pts-employee-insurance-zorg-status.is-failed {
  color: var(--tblr-danger);
}

.pts-employee-insurance-kalip-panel {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding: 0.85rem 0.95rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 22%, var(--tblr-border-color));
  border-radius: 0.85rem;
  background: color-mix(in srgb, var(--tblr-primary) 5%, var(--tblr-bg-surface));
}

.pts-employee-insurance-kalip-meta {
  font-size: 0.8125rem;
  line-height: 1.4;
}

.pts-employee-insurance-kalip-preview {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}

.pts-employee-insurance-kalip-fields {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.85rem;
}

.pts-employee-insurance-kalip-text {
  margin: 0;
  max-height: 14rem;
  overflow: auto;
  padding: 0.65rem 0.75rem;
  border-radius: 0.55rem;
  border: 1px solid var(--tblr-border-color, #dce1e7);
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, #f1f5f9) 70%, transparent);
  font-size: 0.75rem;
  line-height: 1.4;
  white-space: pre-wrap;
  word-break: break-word;
}

.pts-employee-insurance-pdf-list {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  width: 100%;
  max-height: 16rem;
  overflow: auto;
  padding: 0.2rem;
}

.pts-employee-insurance-pdf-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(8rem, 12rem) auto;
  gap: 0.4rem 0.55rem;
  align-items: center;
  min-width: 0;
  padding: 0.4rem 0.5rem;
  border: 1px solid var(--tblr-border-color, #dce1e7);
  border-radius: 0.65rem;
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, #f1f5f9) 45%, transparent);
  box-sizing: border-box;
}

.pts-employee-insurance-pdf-row--simple {
  grid-template-columns: minmax(0, 1fr) minmax(8rem, 12rem) auto;
}

.pts-employee-insurance-pdf-row-main {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  min-width: 0;
}

.pts-employee-insurance-pdf-row-main .icon {
  width: 1.05rem;
  height: 1.05rem;
  flex: 0 0 auto;
  color: var(--tblr-primary);
}

.pts-employee-insurance-slot-badge {
  display: inline-grid;
  place-items: center;
  width: 1.35rem;
  height: 1.35rem;
  flex: 0 0 auto;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
}

.pts-employee-insurance-slot-name {
  min-width: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-employee-insurance-cat-pill {
  font-size: 0.75rem;
  font-weight: 650;
  color: var(--tblr-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-employee-insurance-results {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  width: 100%;
  min-width: 0;
}

.pts-employee-insurance-results-table {
  --tblr-table-bg: transparent;
}

.pts-employee-insurance-bsn-list {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
}

.pts-employee-insurance-cat-drop:hover,
.pts-employee-insurance-cat-drop:focus-visible {
  border-color: color-mix(in srgb, var(--tblr-primary) 55%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-bg-surface));
  outline: none;
}

.pts-employee-insurance-cat-drop.is-dragging {
  border-color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-bg-surface));
  transform: translateY(-1px);
}

.pts-employee-insurance-cat-drop.is-disabled {
  opacity: 0.72;
  cursor: not-allowed;
  pointer-events: none;
}

.pts-employee-insurance-drop-icon {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.85rem;
  color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
  flex: 0 0 auto;
}

.pts-employee-insurance-drop-icon .icon {
  width: 1.3rem;
  height: 1.3rem;
}

.pts-employee-insurance-drop-copy {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}

.pts-employee-insurance-drop-copy strong {
  font-size: 0.98rem;
  font-weight: 650;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.pts-employee-insurance-drop-copy span {
  color: var(--tblr-secondary);
  font-size: 0.84rem;
  line-height: 1.35;
}

.pts-employee-insurance-empty-hint {
  margin: 0;
  padding: 0.15rem 0.1rem;
  font-size: 0.9375rem;
  line-height: 1.45;
}

@media (max-width: 991.98px) {
  .pts-employee-insurance-cat-grid {
    grid-template-columns: 1fr;
  }

  .pts-employee-insurance-pdf-row,
  .pts-employee-insurance-pdf-row--simple {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .pts-employee-insurance-cat-pill {
    grid-column: 1 / -1;
  }
}

.pts-employee-address-cards {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.pts-employee-address-card {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  width: 100%;
  padding: 0.85rem 1rem;
  border: 1px solid var(--tblr-border-color, #dce1e7);
  border-radius: var(--tblr-border-radius, 0.5rem);
  background: var(--tblr-bg-surface, #fff);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  box-sizing: border-box;
}

.pts-employee-address-card-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 0.75rem;
}

.pts-employee-address-card-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 650;
  line-height: 1.3;
}

.pts-employee-address-card-actions {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}

.pts-employee-address-action {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.pts-employee-address-action .icon {
  width: 1rem;
  height: 1rem;
}

@media (max-width: 767.98px) {
  .pts-employee-address-action span {
    display: none;
  }
}

.pts-employee-address-card-body {
  display: grid;
  /* Map left, form fields right */
  grid-template-columns: minmax(14rem, 1.05fr) minmax(0, 1fr);
  gap: 0.85rem;
  align-items: stretch;
  min-width: 0;
}

.pts-employee-address-card-info,
.pts-employee-address-card-map {
  min-width: 0;
}

.pts-employee-address-card-map {
  display: flex;
  flex-direction: column;
}

.pts-employee-address-card-fields .form-label {
  margin-bottom: 0.25rem;
  font-size: 0.8125rem;
}

.pts-employee-address-map {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  height: 100%;
  min-height: 16.5rem;
  min-width: 0;
}

.pts-employee-address-map-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem;
}

.pts-employee-address-map-caption {
  font-size: 0.8125rem;
  font-weight: 600;
}

.pts-employee-address-map-body {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 14rem;
  min-width: 0;
  border: 1px solid var(--tblr-border-color, #dce1e7);
  border-radius: var(--tblr-border-radius, 0.5rem);
  overflow: hidden;
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, #f1f5f9) 70%, transparent);
}

.pts-employee-address-map-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  margin: 0;
  padding: 1rem;
  text-align: center;
}

.pts-employee-address-map-attr {
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.3;
}

.pts-employee-address-map .pts-fleetgo-map {
  flex: 1 1 auto;
  min-height: 14rem;
  height: 100% !important;
  border: 0;
  border-radius: 0;
}

@media (max-width: 991.98px) {
  .pts-employee-address-card-body {
    grid-template-columns: 1fr;
  }

  .pts-employee-address-map {
    min-height: 14rem;
  }
}

.pts-employee-license-meta {
  width: 100%;
  min-width: 0;
}

.pts-employee-license-meta .form-label {
  margin-bottom: 0.25rem;
  font-size: 0.8125rem;
}

.pts-employee-license-class-list {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.pts-employee-license-class-head,
.pts-employee-license-class-row {
  display: grid;
  grid-template-columns: minmax(6.5rem, 8.5rem) minmax(0, 1fr) 2.25rem;
  gap: 0.4rem;
  align-items: center;
}

.pts-employee-license-class-head-spacer,
.pts-employee-license-class-remove {
  width: 2.25rem;
  min-width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.pts-employee-license-class-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 0.85rem;
  margin-top: 0.15rem;
}

@media (max-width: 36rem) {
  .pts-employee-license-class-head {
    display: none;
  }

  .pts-employee-license-class-row {
    grid-template-columns: minmax(0, 1fr) 2.25rem;
    grid-template-areas:
      "class remove"
      "until remove";
  }

  .pts-employee-license-class-row .form-select {
    grid-area: class;
  }

  .pts-employee-license-class-row .form-control {
    grid-area: until;
  }

  .pts-employee-license-class-row .pts-employee-license-class-remove,
  .pts-employee-license-class-row .pts-employee-license-class-head-spacer {
    grid-area: remove;
    align-self: start;
  }
}

.pts-employee-official-idpass-licenses--with-meta {
  height: auto;
  min-height: var(--pts-official-passport-h);
  overflow: visible;
}

.pts-employee-license-meta--stack {
  flex: 0 0 auto;
  width: 100%;
}

.pts-employee-license-meta--stack .row {
  flex-direction: column;
  --bs-gutter-y: 0.35rem;
}

.pts-employee-license-meta--stack .col-md-6 {
  width: 100%;
  max-width: 100%;
}

.pts-employee-official-idpass--license-only {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: var(--pts-official-stack-gap);
}

.pts-employee-official-idpass--license-only .pts-employee-official-idpass-licenses {
  flex-direction: row;
  flex: 1 1 auto;
  width: auto;
  max-width: 100%;
  height: auto;
  overflow: visible;
}

.pts-employee-official-idpass--license-only .pts-employee-official-idpass-license {
  flex: 1 1 var(--pts-official-card-w);
  width: var(--pts-official-card-w);
  max-width: 100%;
  height: var(--pts-official-license-h);
  min-height: var(--pts-official-license-h);
  max-height: var(--pts-official-license-h);
}

.pts-employee-official-idpass-id {
  display: flex;
  flex: 0 0 var(--pts-official-id-h);
  width: 100%;
  height: var(--pts-official-id-h);
  min-height: var(--pts-official-id-h);
  max-height: var(--pts-official-id-h);
}

.pts-employee-official-idpass-license {
  display: flex;
  flex: 0 0 var(--pts-official-license-h);
  width: 100%;
  height: var(--pts-official-license-h);
  min-height: var(--pts-official-license-h);
  max-height: var(--pts-official-license-h);
}

@media (max-width: 767.98px) {
  .pts-employee-official-idpass-passport,
  .pts-employee-official-idpass-ids,
  .pts-employee-official-idpass-licenses {
    flex-basis: 100%;
    width: 100%;
  }

  .pts-employee-official-idpass-ids,
  .pts-employee-official-idpass-licenses {
    height: auto;
    overflow: visible;
  }
}

.pts-employee-official-row > .pts-employee-official-col {
  display: flex;
  min-width: 0;
  max-width: 100%;
}

.pts-employee-official-card {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: 100%;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--tblr-border-color, #dce1e7);
  border-radius: var(--tblr-border-radius, 0.5rem);
  background: var(--tblr-bg-surface, #fff);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  overflow: hidden;
  box-sizing: border-box;
}

.pts-employee-official-card.has-file {
  border-color: color-mix(in srgb, var(--tblr-primary, #206bc4) 28%, var(--tblr-border-color, #dce1e7));
}

.pts-employee-official-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  min-width: 0;
  flex: 0 0 auto;
}

.pts-employee-official-card-head-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  flex: 0 0 auto;
}

.pts-employee-official-card-head-actions .btn {
  white-space: nowrap;
}

.pts-employee-official-card-head-actions .btn .icon {
  margin-right: 0.2rem;
}

.pts-employee-official-card-rotate {
  flex: 0 0 auto;
  padding: 0.1rem 0.35rem;
  line-height: 1;
}

.pts-employee-official-card-rotate .icon {
  width: 0.95rem;
  height: 0.95rem;
  margin-right: 0;
}

.pts-employee-official-card-title {
  font-weight: 700;
  font-size: 0.88rem;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.pts-employee-official-card-hint {
  display: none;
}

.pts-employee-official-card-preview {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  height: 5.5rem;
  min-height: 5.5rem;
  max-height: 5.5rem;
  border: 1px dashed color-mix(in srgb, var(--tblr-primary, #206bc4) 28%, var(--tblr-border-color, #dce1e7));
  border-radius: var(--tblr-border-radius, 0.375rem);
  background: color-mix(in srgb, var(--tblr-bg-surface, #fff) 90%, var(--tblr-primary, #206bc4));
  overflow: hidden;
  box-sizing: border-box;
}

/* Fixed card sizes — content must not grow/shrink the shell */
.pts-employee-official-card--passport {
  width: 100%;
  max-width: 100%;
  height: var(--pts-official-passport-h, 28rem);
  min-height: var(--pts-official-passport-h, 28rem);
  max-height: var(--pts-official-passport-h, 28rem);
  flex: 0 0 auto;
}

.pts-employee-official-card--id {
  width: 100%;
  max-width: 100%;
  height: var(--pts-official-id-h, 13.75rem);
  min-height: var(--pts-official-id-h, 13.75rem);
  max-height: var(--pts-official-id-h, 13.75rem);
  flex: 0 0 auto;
}

.pts-employee-official-card--license {
  width: 100%;
  max-width: 100%;
  height: var(--pts-official-license-h, var(--pts-official-id-h, 13.75rem));
  min-height: var(--pts-official-license-h, var(--pts-official-id-h, 13.75rem));
  max-height: var(--pts-official-license-h, var(--pts-official-id-h, 13.75rem));
  flex: 0 0 auto;
}

.pts-employee-official-extra-row {
  /* Match top row: passport + id + license + 2 gaps */
  --pts-official-top-row-w: calc(
    var(--pts-official-passport-w) + (var(--pts-official-card-w) * 2) + (var(--pts-official-stack-gap) * 2)
  );
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: var(--pts-official-stack-gap, 0.5rem);
  width: min(100%, var(--pts-official-top-row-w));
  max-width: 100%;
}

.pts-employee-official-extra-col {
  display: flex;
  max-width: 100%;
  min-width: 0;
  height: var(--pts-official-id-h, 13.75rem);
}

.pts-employee-official-extra-col--bsn {
  flex: 0 0 var(--pts-official-passport-w);
  width: var(--pts-official-passport-w);
  height: var(--pts-official-bsn-h, var(--pts-official-id-h, 13.75rem));
}

.pts-employee-official-extra-col--other {
  flex: 1 1 0;
  width: auto;
  min-width: 0;
  height: var(--pts-official-bank-h, var(--pts-official-id-h, 13.75rem));
}

.pts-employee-official-card--extra {
  width: 100%;
  max-width: 100%;
  height: var(--pts-official-bsn-h, var(--pts-official-id-h, 13.75rem));
  min-height: var(--pts-official-bsn-h, var(--pts-official-id-h, 13.75rem));
  max-height: var(--pts-official-bsn-h, var(--pts-official-id-h, 13.75rem));
  flex: 0 0 auto;
}

.pts-employee-official-card--bank {
  height: var(--pts-official-bank-h, var(--pts-official-id-h, 13.75rem));
  min-height: var(--pts-official-bank-h, var(--pts-official-id-h, 13.75rem));
  max-height: var(--pts-official-bank-h, var(--pts-official-id-h, 13.75rem));
}

.pts-employee-official-bank-body {
  display: flex;
  align-items: stretch;
  gap: 0.55rem;
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
}

.pts-employee-official-bank-media {
  display: flex;
  flex-direction: column;
  flex: 0 0 8.5rem;
  width: 8.5rem;
  max-width: 8.5rem;
  gap: 0.35rem;
  min-width: 0;
}

.pts-employee-official-bank-preview {
  flex: 0 0 8.5rem !important;
  width: 100%;
  height: 8.5rem !important;
  min-height: 8.5rem !important;
  max-height: 8.5rem !important;
  overflow: hidden;
  --pts-bank-rot: 0deg;
  --pts-bank-rot-scale: 1;
}

.pts-employee-official-bank-preview img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center;
  transform: rotate(var(--pts-bank-rot, 0deg)) scale(var(--pts-bank-rot-scale, 1));
  transform-origin: center center;
}

.pts-employee-official-bank-rotate {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.2rem;
  flex: 0 0 auto;
}

.pts-employee-official-bank-rotate .btn {
  padding: 0.05rem 0.3rem;
  line-height: 1;
}

.pts-employee-official-bank-rotate .btn .icon {
  width: 0.9rem;
  height: 0.9rem;
}

.pts-employee-official-bank-rotate-ccw {
  transform: scaleX(-1);
}

.pts-employee-official-bank-rotate-label {
  font-size: 0.65rem;
  font-weight: 600;
  color: var(--tblr-secondary, #667382);
  font-variant-numeric: tabular-nums;
  min-width: 2rem;
  text-align: center;
}

.pts-employee-official-bank-iban-read {
  width: 100%;
  justify-content: center;
  padding: 0.15rem 0.35rem;
  font-size: 0.7rem;
  line-height: 1.2;
  flex: 0 0 auto;
}

.pts-employee-official-bank-iban-read .icon {
  width: 0.85rem;
  height: 0.85rem;
}

.pts-employee-official-bank-iban-read .pts-spin {
  animation: pts-employee-official-spin 0.8s linear infinite;
}

.pts-employee-official-bank-side {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  gap: 0.35rem;
}

.pts-employee-official-bank-actions {
  flex-wrap: nowrap;
  gap: 0.3rem;
  width: 100%;
  margin-top: auto;
  justify-content: flex-end;
}

.pts-employee-official-bank-actions .btn {
  flex: 0 0 auto;
  padding-left: 0.45rem;
  padding-right: 0.45rem;
  font-size: 0.7rem;
}

.pts-employee-official-bank-fields {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  grid-template-rows: auto auto auto;
  gap: 0.28rem 0.45rem;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  align-content: start;
  overflow: auto;
}

.pts-employee-official-bank-meta-row {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.7fr) minmax(0, 1.1fr);
  gap: 0.28rem 0.4rem;
  min-width: 0;
}

.pts-employee-official-bank-field {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
  margin: 0;
}

.pts-employee-official-bank-field > span {
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1.15;
  color: var(--tblr-secondary, #667382);
}

.pts-employee-official-bank-field .form-control,
.pts-employee-official-bank-field .form-select,
.pts-employee-official-bank-field .pts-country-select-trigger {
  min-width: 0;
  min-height: 0;
  padding-top: 0.2rem;
  padding-bottom: 0.2rem;
  font-size: 0.75rem;
}

.pts-employee-official-bank-field .pts-country-flag {
  width: 18px;
  height: 14px;
}

.pts-employee-official-bank-field--iban {
  grid-column: 1 / -1;
}

.pts-employee-official-bank-iban-row {
  display: flex;
  align-items: stretch;
  gap: 0.35rem;
  min-width: 0;
}

.pts-employee-official-bank-iban-row .form-control {
  flex: 1 1 auto;
  min-width: 0;
}

.pts-employee-official-bank-iban-input.is-valid {
  border-color: #2fb344 !important;
  box-shadow: 0 0 0 0.15rem color-mix(in srgb, #2fb344 28%, transparent);
}

.pts-employee-official-bank-iban-input.is-invalid {
  border-color: #d63939 !important;
  box-shadow: 0 0 0 0.15rem color-mix(in srgb, #d63939 28%, transparent);
}

/* Compact IBAN check modal — hug content, always viewport-centered */
.pts-customer-modal-dialog.pts-employee-iban-check-modal {
  width: 17.5rem !important;
  max-width: 17.5rem !important;
  height: auto !important;
  /* Keep modal-dialog-centered min-height so content sits mid-screen */
  min-height: calc(100vh - 2rem) !important;
  max-height: none !important;
  margin: 1rem auto !important;
  display: flex !important;
  align-items: center !important;
  animation: pts-iban-modal-pop 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

.pts-customer-modal-dialog.pts-employee-iban-check-modal .modal-content {
  width: 100%;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.pts-customer-modal-dialog.pts-employee-iban-check-modal .pts-customer-modal-header {
  flex: 0 0 auto;
  padding: 0.45rem 0.75rem;
}

.pts-customer-modal-dialog.pts-employee-iban-check-modal .pts-customer-modal-body {
  flex: 0 0 auto;
  min-height: 0;
  overflow: visible;
  display: block;
  padding: 0.45rem 0.75rem 0.35rem;
}

.pts-customer-modal-dialog.pts-employee-iban-check-modal .pts-customer-modal-footer {
  flex: 0 0 auto;
  padding: 0.35rem 0.75rem 0.55rem;
}

@keyframes pts-iban-modal-pop {
  from {
    opacity: 0;
    transform: translateY(0.6rem) scale(0.92);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.pts-employee-iban-check-result {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  height: auto;
}

.pts-employee-iban-check-stage {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  min-height: 3.75rem;
  padding: 0.15rem 0;
  flex: 0 0 auto;
}

.pts-employee-iban-check-orbit {
  position: absolute;
  inset: 0.05rem auto auto 50%;
  width: 3.5rem;
  height: 3.5rem;
  margin-left: -1.75rem;
  pointer-events: none;
}

.pts-employee-iban-check-orbit > span {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1.5px solid color-mix(in srgb, var(--tblr-primary, #206bc4) 35%, transparent);
  opacity: 0;
}

.pts-employee-iban-check-result.is-checking .pts-employee-iban-check-orbit > span {
  animation: pts-iban-orbit-pulse 1.4s ease-out infinite;
}

.pts-employee-iban-check-result.is-checking .pts-employee-iban-check-orbit > span:nth-child(2) {
  animation-delay: 0.35s;
}

.pts-employee-iban-check-result.is-checking .pts-employee-iban-check-orbit > span:nth-child(3) {
  animation-delay: 0.7s;
}

@keyframes pts-iban-orbit-pulse {
  0% {
    transform: scale(0.55);
    opacity: 0.7;
  }
  100% {
    transform: scale(1.35);
    opacity: 0;
  }
}

.pts-employee-iban-check-orb {
  position: relative;
  z-index: 1;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--tblr-primary, #206bc4) 12%, #fff);
  border: 2px solid color-mix(in srgb, var(--tblr-primary, #206bc4) 40%, transparent);
  box-shadow: 0 0 0 0 color-mix(in srgb, var(--tblr-primary, #206bc4) 35%, transparent);
  transition: background 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.pts-employee-iban-check-orb .icon {
  width: 1rem;
  height: 1rem;
}

.pts-employee-iban-check-result.is-checking .pts-employee-iban-check-orb {
  animation: pts-iban-orb-glow 1.1s ease-in-out infinite;
}

.pts-employee-iban-check-orb.is-valid {
  background: color-mix(in srgb, #2fb344 16%, #fff);
  border-color: #2fb344;
  color: #2fb344;
  animation: pts-iban-orb-pop 0.38s cubic-bezier(0.22, 1, 0.36, 1);
}

.pts-employee-iban-check-orb.is-invalid {
  background: color-mix(in srgb, #d63939 16%, #fff);
  border-color: #d63939;
  color: #d63939;
  animation: pts-iban-orb-shake 0.42s ease;
}

@keyframes pts-iban-orb-glow {
  0%,
  100% {
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--tblr-primary, #206bc4) 40%, transparent);
    transform: scale(1);
  }
  50% {
    box-shadow: 0 0 0 0.55rem color-mix(in srgb, var(--tblr-primary, #206bc4) 0%, transparent);
    transform: scale(1.04);
  }
}

@keyframes pts-iban-orb-pop {
  0% {
    transform: scale(0.7);
    opacity: 0.4;
  }
  70% {
    transform: scale(1.08);
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes pts-iban-orb-shake {
  0%,
  100% {
    transform: translateX(0);
  }
  25% {
    transform: translateX(-0.22rem);
  }
  75% {
    transform: translateX(0.22rem);
  }
}

.pts-employee-iban-check-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  border: 1px solid transparent;
  animation: pts-iban-check-reveal 0.28s ease-out;
}

.pts-employee-iban-check-badge.is-checking {
  color: var(--tblr-primary, #206bc4);
  background: color-mix(in srgb, var(--tblr-primary, #206bc4) 12%, transparent);
  border-color: color-mix(in srgb, var(--tblr-primary, #206bc4) 35%, transparent);
}

.pts-employee-iban-check-badge.is-valid,
.pts-employee-iban-check-result.is-valid .pts-employee-iban-check-message {
  color: #2fb344;
}

.pts-employee-iban-check-badge.is-valid {
  background: color-mix(in srgb, #2fb344 14%, transparent);
  border-color: color-mix(in srgb, #2fb344 40%, transparent);
}

.pts-employee-iban-check-badge.is-invalid,
.pts-employee-iban-check-result.is-invalid .pts-employee-iban-check-message {
  color: #d63939;
}

.pts-employee-iban-check-badge.is-invalid {
  background: color-mix(in srgb, #d63939 14%, transparent);
  border-color: color-mix(in srgb, #d63939 40%, transparent);
}

.pts-employee-iban-check-message {
  margin: 0;
  font-size: 0.7rem;
  line-height: 1.3;
  min-height: 0;
  text-align: center;
}

.pts-employee-iban-check-dl {
  display: grid;
  gap: 0.2rem;
  margin-top: 0.1rem;
}

.pts-employee-iban-check-dl.is-dimmed {
  opacity: 0.4;
}

.pts-employee-iban-check-dl.is-revealed {
  animation: pts-iban-check-reveal 0.3s ease-out;
}

/* Employee documents — multi download modal */
.pts-customer-modal-dialog.pts-employee-doc-download-modal {
  width: 22rem !important;
  max-width: 22rem !important;
  height: auto !important;
  min-height: calc(100vh - 2rem) !important;
  margin: 1rem auto !important;
  display: flex !important;
  align-items: center !important;
  animation: pts-iban-modal-pop 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

.pts-customer-modal-dialog.pts-employee-doc-download-modal .modal-content {
  width: 100%;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}

.pts-customer-modal-dialog.pts-employee-doc-download-modal .pts-customer-modal-body {
  flex: 0 0 auto;
  overflow: visible;
  padding: 0.75rem 0.9rem 0.5rem;
}

.pts-customer-modal-dialog.pts-employee-doc-download-modal .pts-customer-modal-footer {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  justify-content: flex-end;
}

.pts-employee-doc-download-body {
  min-height: 6.5rem;
}

.pts-employee-doc-download-list {
  max-height: 7rem;
  overflow: auto;
  padding-left: 1.1rem;
  margin: 0;
  font-size: 0.8rem;
}

.pts-employee-doc-download-progress-wrap {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.55rem;
  padding: 0.85rem 0.35rem 0.4rem;
  animation: pts-iban-check-reveal 0.28s ease-out;
}

.pts-employee-doc-download-orbit {
  position: absolute;
  top: 0.2rem;
  left: 50%;
  width: 3.6rem;
  height: 3.6rem;
  margin-left: -1.8rem;
  pointer-events: none;
}

.pts-employee-doc-download-orbit > span {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1.5px solid color-mix(in srgb, var(--tblr-primary, #206bc4) 35%, transparent);
  opacity: 0;
  animation: pts-iban-orbit-pulse 1.4s ease-out infinite;
}

.pts-employee-doc-download-orbit > span:nth-child(2) {
  animation-delay: 0.35s;
}

.pts-employee-doc-download-orbit > span:nth-child(3) {
  animation-delay: 0.7s;
}

.pts-employee-doc-download-body.is-done .pts-employee-doc-download-orbit > span {
  animation: none;
  opacity: 0;
}

.pts-employee-doc-download-percent {
  position: relative;
  z-index: 1;
  font-size: 1.35rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--tblr-primary, #206bc4);
  line-height: 1;
  margin-top: 0.35rem;
}

.pts-employee-doc-download-bar {
  width: 100%;
  height: 0.55rem;
  border-radius: 999px;
  overflow: hidden;
  background: color-mix(in srgb, var(--tblr-primary, #206bc4) 12%, var(--tblr-bg-surface-secondary, #f1f5f9));
}

.pts-employee-doc-download-bar .progress-bar {
  height: 100%;
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--tblr-primary, #206bc4) 75%, #fff),
    var(--tblr-primary, #206bc4)
  );
  transition: width 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.pts-employee-doc-download-label {
  font-size: 0.72rem;
  color: var(--tblr-secondary, #667382);
  text-align: center;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-dt-table tbody tr.is-selected td {
  background: color-mix(in srgb, var(--tblr-primary, #206bc4) 8%, transparent);
}

.pts-employee-doc-uploader-col {
  width: 1%;
  vertical-align: middle;
  text-align: center;
}

.pts-employee-doc-uploader-avatar {
  --pts-list-avatar-size: 2rem;
  font-size: 0.68rem;
}

@keyframes pts-iban-check-reveal {
  from {
    opacity: 0;
    transform: translateY(0.3rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.pts-employee-iban-check-dl > div {
  display: grid;
  grid-template-columns: 5.2rem minmax(0, 1fr);
  gap: 0.25rem;
  align-items: baseline;
}

.pts-employee-iban-check-dl dt {
  margin: 0;
  font-size: 0.65rem;
  font-weight: 600;
  color: var(--tblr-secondary, #667382);
}

.pts-employee-iban-check-dl dd {
  margin: 0;
  font-size: 0.75rem;
  word-break: break-word;
}

.pts-employee-official-bank-iban-check {
  flex: 0 0 auto;
  white-space: nowrap;
  padding-left: 0.45rem;
  padding-right: 0.45rem;
  font-size: 0.7rem;
  line-height: 1.2;
}

.pts-employee-official-bank-iban-check .icon {
  width: 0.85rem;
  height: 0.85rem;
}

.pts-employee-official-bank-iban-check .pts-spin {
  animation: pts-employee-official-spin 0.8s linear infinite;
}

@keyframes pts-employee-official-spin {
  to {
    transform: rotate(360deg);
  }
}

.pts-employee-official-bank-name-row {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
}

.pts-employee-official-bank-name-row .form-select {
  flex: 1 1 auto;
  min-width: 0;
}

@media (max-width: 767.98px) {
  .pts-employee-official-extra-row {
    flex-wrap: wrap;
    width: 100%;
  }

  .pts-employee-official-extra-col--bsn,
  .pts-employee-official-extra-col--other {
    flex: 1 1 100%;
    width: 100%;
    height: auto;
  }

  .pts-employee-official-card--extra,
  .pts-employee-official-card--bank {
    height: auto;
    min-height: 0;
    max-height: none;
  }

  .pts-employee-official-bank-body {
    flex-direction: column;
  }

  .pts-employee-official-bank-media {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
  }

  .pts-employee-official-bank-preview {
    flex-basis: 10rem !important;
    height: 10rem !important;
    min-height: 10rem !important;
    max-height: 10rem !important;
  }
}

.pts-employee-official-card--passport .pts-employee-official-card-preview,
.pts-employee-official-card--id .pts-employee-official-card-preview,
.pts-employee-official-card--license .pts-employee-official-card-preview,
.pts-employee-official-card--extra:not(.pts-employee-official-card--bank) .pts-employee-official-card-preview {
  flex: 1 1 auto;
  height: auto;
  min-height: 0;
  max-height: none;
}

.pts-employee-official-card-preview img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  object-position: center;
  background: #0f172a08;
}

.pts-employee-official-card--passport .pts-employee-official-card-preview img,
.pts-employee-official-card--id .pts-employee-official-card-preview img,
.pts-employee-official-card--license .pts-employee-official-card-preview img,
.pts-employee-official-card--extra:not(.pts-employee-official-card--bank) .pts-employee-official-card-preview img {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center;
  transform: rotate(var(--pts-doc-rot, 0deg)) scale(var(--pts-doc-rot-scale, 1));
  transform-origin: center center;
}

.pts-employee-official-card--passport .pts-employee-official-card-preview.is-zooming img,
.pts-employee-official-card--id .pts-employee-official-card-preview.is-zooming img,
.pts-employee-official-card--license .pts-employee-official-card-preview.is-zooming img,
.pts-employee-official-card--extra:not(.pts-employee-official-card--bank) .pts-employee-official-card-preview.is-zooming img {
  transform: rotate(var(--pts-doc-rot, 0deg)) scale(var(--pts-doc-rot-scale, 1)) scale(2.15);
}

.pts-employee-official-card-preview.is-zoomable {
  cursor: zoom-in;
}

.pts-employee-official-card-preview.is-zoomable img {
  transition: transform 0.12s ease-out;
  will-change: transform;
  pointer-events: none;
}

.pts-employee-official-bank-preview.is-zooming img {
  transform: rotate(var(--pts-bank-rot, 0deg)) scale(calc(var(--pts-bank-rot-scale, 1) * 2.15));
}

.pts-employee-official-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 1.25rem;
  padding-top: max(1.25rem, env(safe-area-inset-top));
  padding-bottom: max(1.25rem, env(safe-area-inset-bottom));
  background: rgba(2, 6, 23, 0.88);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  cursor: zoom-out;
}

.pts-employee-official-lightbox-img {
  display: block;
  max-width: min(96vw, 72rem);
  max-height: min(84vh, 54rem);
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 0.55rem;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.45);
  background: #0b1220;
  cursor: default;
}

.pts-employee-official-lightbox-caption {
  color: rgba(248, 250, 252, 0.9);
  font-size: 0.92rem;
  font-weight: 650;
  letter-spacing: 0.01em;
}

.pts-employee-official-lightbox-close {
  appearance: none;
  position: absolute;
  top: max(0.85rem, env(safe-area-inset-top));
  right: max(0.85rem, env(safe-area-inset-right));
  width: 2.6rem;
  height: 2.6rem;
  border: 0;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  cursor: pointer;
}

.pts-employee-official-lightbox-close .icon {
  width: 1.2rem;
  height: 1.2rem;
}

.pts-employee-official-lightbox-close:hover {
  background: rgba(255, 255, 255, 0.24);
}

.pts-employee-official-card-pdf,
.pts-employee-official-card-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  max-width: 100%;
  padding: 0.35rem;
  text-align: center;
  overflow: hidden;
}

.pts-employee-official-card-pdf .text-truncate {
  max-width: 100%;
}

.pts-employee-official-card-pdf .icon {
  width: 1.35rem;
  height: 1.35rem;
  flex: 0 0 auto;
}

.pts-employee-official-card-actions {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 0.35rem;
  margin-top: auto;
  width: 100%;
  min-width: 0;
}

.pts-employee-official-card-actions .btn {
  flex: 1 1 0;
  min-width: 0;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pts-employee-official-card-actions .btn .icon {
  margin-right: 0.25rem;
}

.pts-employee-official-card-actions .pts-employee-official-btn-icon {
  flex: 0 0 auto;
  width: 2rem;
  min-width: 2rem;
  padding-left: 0;
  padding-right: 0;
}

.pts-employee-official-card-actions .pts-employee-official-btn-icon .icon {
  margin-right: 0;
}

.pts-employee-official-camera-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1080;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: rgba(15, 23, 42, 0.62);
}

.pts-employee-official-camera-modal {
  width: min(28rem, 100%);
  border-radius: 0.85rem;
  background: #0b1220;
  color: #f8fafc;
  overflow: hidden;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.35);
}

.pts-employee-official-camera-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid #1e293b;
}

.pts-employee-official-camera-stage {
  background: #000;
  min-height: 16rem;
}

.pts-employee-official-camera-stage video,
.pts-employee-official-camera-stage img {
  display: block;
  width: 100%;
  max-height: 70dvh;
  object-fit: contain;
  background: #000;
}

.pts-employee-official-camera-actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.85rem 1rem 1rem;
}

.pts-employee-official-qr-modal {
  background: #111827;
}

.pts-employee-official-qr-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 1.1rem 1rem 0.25rem;
  text-align: center;
}

.pts-employee-official-qr-img {
  display: block;
  width: 200px;
  height: 200px;
  border-radius: 0.5rem;
  background: #fff;
  padding: 0.4rem;
}

.pts-employee-official-qr-hint {
  margin: 0;
  color: #cbd5e1;
  font-size: 0.88rem;
  line-height: 1.45;
  max-width: 22rem;
}

.pts-employee-official-qr-status {
  margin: 0;
  color: #38bdf8;
  font-size: 0.85rem;
  font-weight: 600;
}

.pts-employee-official-qr-url {
  max-width: 100%;
}

.pts-doc-capture-page {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  height: 100%;
  height: 100dvh;
  margin: 0;
  padding: 0;
  background: #000;
  color: #fff;
  overflow: hidden;
  -webkit-user-select: none;
  user-select: none;
  touch-action: manipulation;
}

.pts-doc-capture-boot {
  flex: 1 1 auto;
  background: #000;
}

.pts-doc-capture-boot::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 1.6rem;
  height: 1.6rem;
  margin: -0.8rem 0 0 -0.8rem;
  border: 2px solid rgba(255, 255, 255, 0.18);
  border-top-color: #fff;
  border-radius: 50%;
  animation: pts-doc-capture-spin 0.7s linear infinite;
}

.pts-doc-capture-error {
  margin: auto 1.25rem;
  padding: 0.85rem 1rem;
  border-radius: 0.9rem;
  background: rgba(127, 29, 29, 0.88);
  color: #fecaca;
  font-size: 0.92rem;
  font-weight: 600;
  text-align: center;
  backdrop-filter: blur(10px);
}

.pts-doc-capture-top {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  z-index: 8;
  padding: max(0.55rem, env(safe-area-inset-top)) 0.65rem 0.45rem;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0) 100%);
  pointer-events: none;
}

.pts-doc-capture-kinds {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.4rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  pointer-events: auto;
  padding-bottom: 0.15rem;
}

.pts-doc-capture-kinds::-webkit-scrollbar {
  display: none;
}

.pts-doc-capture-kind {
  appearance: none;
  flex: 0 0 auto;
  border: 0;
  background: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.78);
  border-radius: 999px;
  padding: 0.42rem 0.78rem;
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0.01em;
  line-height: 1;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: background 0.15s ease, color 0.15s ease, transform 0.12s ease;
}

.pts-doc-capture-kind.is-active {
  background: #fff;
  color: #0a0a0a;
}

.pts-doc-capture-kind.is-done:not(.is-active) {
  background: rgba(34, 197, 94, 0.28);
  color: #bbf7d0;
}

.pts-doc-capture-kind:disabled {
  opacity: 0.45;
}

.pts-doc-capture-kind:active:not(:disabled) {
  transform: scale(0.97);
}

.pts-doc-capture-stage {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  background: #000;
}

.pts-doc-capture-video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  background: #000;
}

.pts-doc-capture-video--preview {
  object-fit: contain;
  background: #050505;
}

.pts-doc-capture-guide {
  pointer-events: none;
  position: absolute;
  z-index: 5;
  box-sizing: border-box;
  border: 0;
  border-radius: 0.65rem;
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.48);
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

.pts-doc-capture-guide.is-ready {
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.42);
}

.pts-doc-capture-guide.is-card {
  border-radius: 0.7rem;
}

.pts-doc-capture-guide.is-passport {
  border-radius: 0.55rem;
}

.pts-doc-capture-guide-corner {
  position: absolute;
  width: 1.35rem;
  height: 1.35rem;
  border: 2.5px solid rgba(255, 255, 255, 0.92);
  border-radius: 0.2rem;
}

.pts-doc-capture-guide.is-ready .pts-doc-capture-guide-corner {
  border-color: #4ade80;
}

.pts-doc-capture-guide-corner--tl {
  left: 0;
  top: 0;
  border-right: 0;
  border-bottom: 0;
}

.pts-doc-capture-guide-corner--tr {
  right: 0;
  top: 0;
  border-left: 0;
  border-bottom: 0;
}

.pts-doc-capture-guide-corner--bl {
  left: 0;
  bottom: 0;
  border-right: 0;
  border-top: 0;
}

.pts-doc-capture-guide-corner--br {
  right: 0;
  bottom: 0;
  border-left: 0;
  border-top: 0;
}

.pts-doc-capture-sync {
  position: absolute;
  inset: 0;
  z-index: 6;
  background: rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(2px);
}

.pts-doc-capture-sync::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 2rem;
  height: 2rem;
  margin: -1rem 0 0 -1rem;
  border: 2.5px solid rgba(255, 255, 255, 0.22);
  border-top-color: #fff;
  border-radius: 50%;
  animation: pts-doc-capture-spin 0.75s linear infinite;
}

.pts-doc-capture-chrome {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 8;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1rem max(1.35rem, env(safe-area-inset-bottom));
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.62) 0%, rgba(0, 0, 0, 0) 100%);
  pointer-events: none;
}

.pts-doc-capture-chrome > * {
  pointer-events: auto;
}

.pts-doc-capture-toast {
  max-width: 16rem;
  padding: 0.45rem 0.75rem;
  border-radius: 999px;
  background: rgba(127, 29, 29, 0.9);
  color: #fecaca;
  font-size: 0.78rem;
  font-weight: 650;
  text-align: center;
}

.pts-doc-capture-shoot {
  display: grid;
  grid-template-columns: 3.4rem 4.5rem 3.4rem;
  align-items: center;
  justify-items: center;
  gap: 1.35rem;
}

.pts-doc-capture-shoot-spacer {
  width: 3.4rem;
  height: 3.4rem;
}

.pts-doc-capture-file {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.pts-doc-capture-shutter {
  appearance: none;
  position: relative;
  width: 4.5rem;
  height: 4.5rem;
  border: 0;
  padding: 0;
  border-radius: 50%;
  background: transparent;
}

.pts-doc-capture-shutter.is-ghost {
  visibility: hidden;
}

.pts-doc-capture-shutter:disabled {
  opacity: 0.4;
}

.pts-doc-capture-shutter-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 3px solid rgba(255, 255, 255, 0.92);
  box-sizing: border-box;
}

.pts-doc-capture-shutter-core {
  position: absolute;
  inset: 0.42rem;
  border-radius: 50%;
  background: #fff;
  transition: transform 0.12s ease, background 0.12s ease;
}

.pts-doc-capture-shutter:active:not(:disabled) .pts-doc-capture-shutter-core {
  transform: scale(0.9);
  background: #e5e7eb;
}

.pts-doc-capture-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(18rem, 100%);
  padding: 0 0.35rem;
}

.pts-doc-capture-icon-btn {
  appearance: none;
  width: 3.4rem;
  height: 3.4rem;
  border: 0;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.pts-doc-capture-icon-btn .icon {
  width: 1.35rem;
  height: 1.35rem;
}

.pts-doc-capture-icon-btn--ghost {
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
}

.pts-doc-capture-icon-btn--ok {
  background: #fff;
  color: #0a0a0a;
}

.pts-doc-capture-icon-btn:disabled {
  opacity: 0.45;
}

.pts-doc-capture-icon-btn:active:not(:disabled) {
  transform: scale(0.96);
}

@keyframes pts-doc-capture-spin {
  to {
    transform: rotate(360deg);
  }
}

.pts-id-scan-done {
  margin-top: 1.25rem;
  padding: 1rem;
  border-radius: 0.75rem;
  background: #111827;
}


.pts-id-scan-page {
  min-height: 100dvh;
  padding: 0.55rem 1rem 1.5rem;
  max-width: 32rem;
  margin: 0 auto;
  background: #0b1220;
  color: #f8fafc;
}

.pts-id-scan-page--passport .pts-id-scan-head,
.pts-id-scan-page--id .pts-id-scan-head {
  margin-bottom: 0.25rem;
}

.pts-id-scan-head h1 {
  font-size: 1.15rem;
  margin: 0 0 0.2rem;
}

.pts-id-scan-sub {
  margin: 0;
  color: #94a3b8;
  font-size: 0.92rem;
}

.pts-id-scan-choose {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin-top: 1.25rem;
}

.pts-id-scan-choose-intro {
  margin: 0 0 0.35rem;
  color: #cbd5e1;
  line-height: 1.45;
}

.pts-id-scan-choose-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  width: 100%;
  padding: 1rem 1.1rem;
  border: 1px solid #334155;
  border-radius: 0.85rem;
  background: linear-gradient(180deg, #111827 0%, #0f172a 100%);
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.pts-id-scan-choose-card:hover,
.pts-id-scan-choose-card:focus-visible {
  border-color: #38bdf8;
  outline: none;
  box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.25);
}

.pts-id-scan-choose-title {
  font-size: 1.1rem;
  font-weight: 700;
}

.pts-id-scan-choose-desc {
  color: #94a3b8;
  font-size: 0.88rem;
  line-height: 1.4;
}

.pts-id-scan-camera-wrap {
  position: relative;
  margin-top: 0.35rem;
}

.pts-id-scan-camera-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.4rem;
}

.pts-id-scan-type-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  background: #1e293b;
  color: #e2e8f0;
  font-size: 0.8rem;
  font-weight: 600;
}

.pts-id-scan-stage {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 0.85rem;
  background: #000;
  z-index: 0;
}

.pts-id-scan-video {
  position: relative;
  z-index: 0;
  width: 100%;
  display: block;
  background: #000;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}

.pts-id-scan-stage--passport .pts-id-scan-video {
  aspect-ratio: 3 / 4;
}

.pts-id-scan-stage--id .pts-id-scan-video {
  aspect-ratio: 3 / 4;
}

.pts-id-scan-guide {
  pointer-events: none;
  position: absolute;
  z-index: 5;
  border: 3px solid #38bdf8;
  border-radius: 0.5rem;
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.55);
  /* Force compositing above <video> on iOS Safari */
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

.pts-id-scan-guide.is-passport {
  left: 4%;
  right: 4%;
  bottom: 5%;
  height: 22%;
  border-width: 3px;
  background: rgba(14, 165, 233, 0.38);
  box-shadow:
    0 0 0 9999px rgba(0, 0, 0, 0.55),
    inset 0 0 0 1px rgba(255, 255, 255, 0.35);
}

.pts-id-scan-stage.is-ready .pts-id-scan-guide.is-passport {
  border-color: #22c55e;
  background: rgba(34, 197, 94, 0.32);
  box-shadow:
    0 0 0 9999px rgba(0, 0, 0, 0.5),
    0 0 0 3px rgba(34, 197, 94, 0.55),
    inset 0 0 0 1px rgba(255, 255, 255, 0.35);
}

.pts-id-scan-guide.is-id {
  left: 8%;
  right: 8%;
  top: 18%;
  bottom: 18%;
  height: auto;
  border-style: dashed;
  background: rgba(14, 165, 233, 0.12);
}

.pts-id-scan-guide-label {
  position: absolute;
  left: 0.55rem;
  top: 0.35rem;
  z-index: 1;
  padding: 0.15rem 0.5rem;
  border-radius: 0.3rem;
  background: #0ea5e9;
  color: #0b1220;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
}

.pts-id-scan-guide-lines {
  position: absolute;
  left: 8%;
  right: 8%;
  top: 32%;
  bottom: 18%;
  display: flex;
  flex-direction: column;
  justify-content: space-evenly;
}

.pts-id-scan-guide-lines > span {
  display: block;
  height: 3px;
  background: rgba(255, 255, 255, 0.92);
  border-radius: 2px;
  box-shadow: 0 0 0 1px rgba(14, 165, 233, 0.8);
}

.pts-id-scan-steps {
  margin: 0 0 0.75rem;
  padding: 0.75rem 0.75rem 0.75rem 1.35rem;
  border-radius: 0.75rem;
  background: #111827;
  color: #cbd5e1;
  font-size: 0.82rem;
  line-height: 1.45;
}

.pts-id-scan-steps li + li {
  margin-top: 0.25rem;
}

.pts-id-scan-meter {
  margin-top: 0.75rem;
}

.pts-id-scan-meter-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.3rem;
  color: #cbd5e1;
  font-size: 0.82rem;
}

.pts-id-scan-meter-bar {
  height: 0.55rem;
  border-radius: 999px;
  background: #1e293b;
  overflow: hidden;
}

.pts-id-scan-meter-fill {
  height: 100%;
  border-radius: inherit;
  transition: width 0.2s ease;
}

.pts-id-scan-meter-fill.is-low {
  background: #ef4444;
}

.pts-id-scan-meter-fill.is-mid {
  background: #f59e0b;
}

.pts-id-scan-meter-fill.is-good {
  background: #22c55e;
}

.pts-id-scan-hint {
  margin-top: 0.75rem;
  text-align: center;
  color: #e2e8f0;
  line-height: 1.4;
  font-weight: 600;
  min-height: 2.6rem;
}

.pts-id-scan-hint.is-good {
  color: #86efac;
}

.pts-id-scan-hint-secondary {
  margin-top: 0.35rem;
  text-align: center;
  color: #94a3b8;
  font-size: 0.8rem;
  line-height: 1.35;
}

.pts-id-scan-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
  margin-top: 0.85rem;
}

.pts-id-scan-attempts {
  margin: 0.55rem 0 0;
  text-align: center;
  color: #64748b;
  font-size: 0.75rem;
}

.pts-id-scan-result {
  margin-top: 1rem;
  color: #0f172a;
}

.pts-id-scan-dl {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem 1rem;
  margin: 0.75rem 0 0;
}

.pts-id-scan-dl dt {
  font-size: 0.75rem;
  color: var(--tblr-secondary, #6c7a91);
  margin: 0;
}

.pts-id-scan-dl dd {
  margin: 0.1rem 0 0;
  font-weight: 600;
  word-break: break-word;
}

.pts-id-scan-page .pts-id-scan-dl dt {
  color: #64748b;
}

.pts-customer-detail-general .pts-employee-options-wrap {
  margin-top: 1.55rem;
  margin-bottom: 0.7rem;
}

.pts-customer-detail-general .pts-employee-workplace-field .form-label {
  margin-bottom: 0.5rem;
}

.pts-customer-detail-general .pts-employee-options-row {
  gap: 0.55rem;
  margin-top: 0;
}

.pts-customer-form-section-muted {
  background: color-mix(in srgb, var(--tblr-bg-surface) 98%, var(--tblr-secondary));
}

.pts-customer-detail-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem 1rem;
}

.pts-customer-detail-summary-item {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.pts-customer-detail-summary-item strong {
  font-weight: 600;
  word-break: break-word;
}

.pts-manage-section-toolbar .btn {
  border-width: 1px;
}

@media (max-width: 767.98px) {
  .pts-customer-detail-summary {
    grid-template-columns: 1fr;
  }
}

.pts-page-detail.pts-page-development-detail {
  align-items: center;
  justify-content: center;
  padding: clamp(1rem, 2.5vw, 1.75rem);
  background:
    radial-gradient(120% 80% at 50% 0%, color-mix(in srgb, var(--tblr-primary) 7%, transparent), transparent 58%),
    var(--tblr-bg-surface);
}

.pts-page-development-surface {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  flex: 1 1 auto;
  min-height: min(28rem, 100%);
  padding: 0.5rem 0;
}

.pts-page-development-card {
  --pts-home-accent: var(--tblr-primary);
  position: relative;
  isolation: isolate;
  width: min(100%, 36rem);
  padding: clamp(2rem, 5vw, 3.25rem) clamp(1.25rem, 4vw, 2rem);
  border-radius: calc(var(--tblr-border-radius) + 0.35rem);
  border: 1px solid color-mix(in srgb, var(--pts-home-accent) 14%, var(--tblr-border-color));
  background:
    linear-gradient(
      165deg,
      color-mix(in srgb, var(--pts-home-accent) 8%, var(--tblr-bg-surface)) 0%,
      var(--tblr-bg-surface) 42%,
      color-mix(in srgb, var(--pts-home-accent) 4%, var(--tblr-bg-surface)) 100%
    );
  box-shadow:
    0 18px 40px -28px color-mix(in srgb, var(--pts-home-accent) 42%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 35%, transparent);
  text-align: center;
  overflow: hidden;
}

[data-bs-theme="dark"] .pts-page-development-card {
  box-shadow:
    0 20px 44px -30px color-mix(in srgb, #000 70%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 8%, transparent);
}

.pts-page-development-glow {
  pointer-events: none;
  position: absolute;
  inset: -28% auto auto 50%;
  width: min(18rem, 70vw);
  height: min(18rem, 70vw);
  transform: translateX(-50%);
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--pts-home-accent) 22%, transparent), transparent 70%);
  opacity: 0.55;
}

.pts-page-development-grid {
  pointer-events: none;
  position: absolute;
  inset: 0;
  opacity: 0.35;
  background-image:
    linear-gradient(color-mix(in srgb, var(--pts-home-accent) 8%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--pts-home-accent) 8%, transparent) 1px, transparent 1px);
  background-size: 1.35rem 1.35rem;
  mask-image: radial-gradient(ellipse 85% 70% at 50% 38%, #000 18%, transparent 78%);
}

.pts-page-development-copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.15rem;
}

.pts-page-development-wordmark {
  font-size: clamp(2.6rem, 11vw, 4.5rem);
  letter-spacing: -0.05em;
  line-height: 1;
  user-select: none;
  filter: drop-shadow(0 10px 24px color-mix(in srgb, var(--pts-home-accent) 18%, transparent));
}

.pts-page-development-status {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0;
  padding: 0.45rem 0.9rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.35;
  color: color-mix(in srgb, var(--pts-home-accent) 78%, var(--tblr-body-color));
  background: color-mix(in srgb, var(--pts-home-accent) 9%, var(--tblr-bg-surface));
  border: 1px solid color-mix(in srgb, var(--pts-home-accent) 18%, var(--tblr-border-color));
  box-shadow: 0 8px 20px -16px color-mix(in srgb, var(--pts-home-accent) 45%, transparent);
}

.pts-page-development-pulse {
  flex: 0 0 auto;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--pts-home-accent);
  box-shadow: 0 0 0 0 color-mix(in srgb, var(--pts-home-accent) 45%, transparent);
  animation: pts-page-development-pulse 1.8s ease-out infinite;
}

@keyframes pts-page-development-pulse {
  0% {
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--pts-home-accent) 42%, transparent);
  }

  70% {
    box-shadow: 0 0 0 0.55rem transparent;
  }

  100% {
    box-shadow: 0 0 0 0 transparent;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .pts-page-development-card.is-enter {
    animation: pts-page-development-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
  }
}

@keyframes pts-page-development-in {
  from {
    opacity: 0;
    transform: translateY(0.65rem) scale(0.985);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pts-page-development-pulse {
    animation: none;
  }
}

.pts-manage-page > .page-body {
  width: 100%;
}

.pts-manage-body > .container-xl,
.pts-page-scroll > .page-body > .container-xl {
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.layout-overlap .pts-page-header .pts-page-actions {
  --pts-page-action-color: var(--tblr-secondary);
  --pts-page-action-hover: var(--tblr-primary);
  --pts-page-action-border: var(--tblr-border-color);
}

.layout-overlap .pts-page-header .pts-page-actions .pts-page-action {
  background: var(--tblr-bg-surface);
}

.layout-overlap .pts-page-header .pts-page-actions .pts-page-action:hover,
.layout-overlap .pts-page-header .pts-page-actions .pts-page-action:focus-visible,
.layout-overlap .pts-page-header .pts-page-actions .dropdown.show .pts-page-action {
  color: var(--pts-page-action-hover) !important;
  background: color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-bg-surface));
  border-color: color-mix(in srgb, var(--tblr-primary) 28%, var(--tblr-border-color));
}

@media (max-width: 575.98px) {
  .pts-page-actions {
    --pts-page-action-size: 2rem;
    --pts-page-action-icon: 1.1rem;
    --tblr-list-gap: 0.28rem;
  }
}

.card:has(> .pts-sparkline) {
  overflow: hidden;
}

.pts-sparkline {
  display: block;
  width: 100%;
  height: 2.5rem;
  margin-top: 0.15rem;
  color: var(--tblr-primary);
}

.pts-sparkline.is-lg,
.pts-traffic.is-lg .pts-sparkline {
  height: 8.5rem;
}

.pts-node-card.is-live .pts-sparkline { color: var(--tblr-success); }
.pts-node-card.is-passive .pts-sparkline { color: var(--tblr-yellow); }
.pts-node-card.is-down .pts-sparkline { color: var(--tblr-danger); }

/* tema-mimarisi: data-table-standard — portal list table shell (see data-table-* records) */
.pts-dt-toolbar,
.pts-dt-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0.75rem;
}

.pts-dt-toolbar {
  border-bottom: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
}

.pts-dt-footer {
  border-top: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
}

.pts-dt-search {
  min-width: 10rem;
  max-width: 16rem;
  flex: 1 1 10rem;
}

.pts-dt-toolbar .form-select {
  width: auto;
}

.pts-employee-operator-filter {
  min-width: 10rem;
  max-width: 16rem;
}

.pts-employee-list-toolbar-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.pts-employee-sort-filter {
  min-width: 7.5rem;
  max-width: 11rem;
}

.pts-dt-page-size {
  min-width: 5.25rem;
  flex: 0 0 auto;
}

.pts-dt-card {
  overflow: hidden;
}

/* Development requests: two-line cells (ID + type, date + time). */
.pts-dt-card.pts-dt-dev-requests {
  overflow-x: auto;
  overflow-y: visible;
}

.pts-dt-card.pts-dt-dev-requests .pts-dt-fixed {
  --pts-dt-row-h: 3.2rem;
}

/* Dev requests: pts-col-fit alone shrinks ID/date columns too tight. */
.pts-dt-card.pts-dt-dev-requests .pts-dt-table th.pts-col-fit,
.pts-dt-card.pts-dt-dev-requests .pts-dt-table td.pts-col-fit {
  padding-inline: 1rem;
}

.pts-dt-card.pts-dt-dev-requests .pts-dt-table th:nth-child(1),
.pts-dt-card.pts-dt-dev-requests .pts-dt-table td:nth-child(1) {
  width: auto;
  min-width: 8.75rem;
  text-align: start;
}

.pts-dt-card.pts-dt-dev-requests .pts-dt-table th:nth-child(2),
.pts-dt-card.pts-dt-dev-requests .pts-dt-table td:nth-child(2),
.pts-dt-card.pts-dt-dev-requests .pts-dt-table th:nth-child(3),
.pts-dt-card.pts-dt-dev-requests .pts-dt-table td:nth-child(3) {
  width: auto;
  min-width: 9.75rem;
  text-align: start;
}

.pts-dt-card.pts-dt-dev-requests .pts-dt-table th:nth-child(4),
.pts-dt-card.pts-dt-dev-requests .pts-dt-table td:nth-child(4) {
  width: auto;
  min-width: 7.5rem;
  text-align: start;
}

.pts-dt-card.pts-dt-dev-requests .pts-dt-table th:nth-child(5),
.pts-dt-card.pts-dt-dev-requests .pts-dt-table td:nth-child(5) {
  width: auto;
  min-width: 8.5rem;
  text-align: start;
}

.pts-dt-card.pts-dt-dev-requests .pts-dt-table th:nth-child(7),
.pts-dt-card.pts-dt-dev-requests .pts-dt-table td:nth-child(7) {
  width: auto;
  min-width: 7.25rem;
  text-align: start;
}

.pts-dt-card.pts-dt-dev-requests .pts-dt-dev-id {
  color: var(--tblr-body-color);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.pts-dt-card.pts-dt-dev-requests .pts-dt-cell-2line-primary {
  color: var(--tblr-body-color);
  overflow: visible;
  text-overflow: clip;
}

.pts-dt-card.pts-dt-dev-requests .pts-dt-cell-2line-secondary {
  color: color-mix(in srgb, var(--tblr-body-color) 68%, var(--tblr-secondary));
  overflow: visible;
  text-overflow: clip;
}

.pts-dt-card.pts-dt-dev-requests .pts-dt-progress-label {
  display: inline-block;
  color: var(--tblr-body-color);
  font-weight: 500;
  white-space: nowrap;
}

.pts-dt-card.pts-dt-dev-requests .badge.pts-dev-request-status-badge {
  display: inline-flex;
  align-items: center;
  max-width: none;
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
  border: 1px solid color-mix(in srgb, var(--tblr-secondary) 55%, var(--tblr-border-color));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tblr-border-color) 70%, transparent);
}

.pts-dt-card.pts-dt-dev-requests .badge.pts-dev-request-status-badge.is-ok {
  border-color: color-mix(in srgb, var(--tblr-success) 55%, var(--tblr-border-color));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tblr-success) 28%, transparent);
}

.pts-dt-card.pts-dt-dev-requests .badge.pts-dev-request-status-badge.is-warn {
  border-color: color-mix(in srgb, var(--tblr-yellow) 60%, var(--tblr-border-color));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tblr-yellow) 30%, transparent);
}

.pts-dt-card.pts-dt-dev-requests .badge.pts-dev-request-status-badge.is-danger {
  border-color: color-mix(in srgb, var(--tblr-danger) 55%, var(--tblr-border-color));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tblr-danger) 28%, transparent);
}

.pts-dt-card.pts-dt-dev-requests .badge.pts-dev-request-status-badge.is-info {
  border-color: color-mix(in srgb, var(--tblr-primary) 50%, var(--tblr-border-color));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tblr-primary) 25%, transparent);
}

.pts-dt-cell-2line {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.1rem;
  line-height: 1.2;
  min-height: 2.45rem;
}

.pts-dt-cell-2line-primary {
  font-weight: 500;
  white-space: nowrap;
}

.pts-dt-cell-2line-secondary {
  font-size: 0.75rem;
  color: color-mix(in srgb, var(--tblr-secondary) 88%, transparent);
  white-space: nowrap;
}

.pts-dt-dev-performance {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.15rem;
  min-width: 6.5rem;
  max-width: 8.5rem;
}

.pts-dt-dev-performance-pct {
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1;
  color: var(--tblr-body-color);
}

.pts-dt-dev-performance-bar {
  height: 0.35rem;
  background: color-mix(in srgb, var(--tblr-border-color) 55%, transparent);
  border-radius: var(--tblr-border-radius-sm);
}

.pts-dt-dev-performance-bar .progress-bar {
  background: var(--tblr-primary);
}

.pts-dt-dev-performance-bar .progress-bar.bg-success {
  background: var(--tblr-success) !important;
}

.pts-dt-fixed {
  /* Compact density (~90% zoom feel) while keeping 10-row capacity */
  --pts-dt-row-gap: 0.5rem;
  --pts-dt-head-gap: 0.3rem;
  --pts-dt-side-gap: 0.45rem;
  --pts-dt-row-bg: color-mix(in srgb, var(--tblr-bg-surface) 88%, var(--tblr-body-bg));
  --pts-dt-row-bg-alt: color-mix(in srgb, var(--tblr-primary) 5%, var(--tblr-bg-surface));
  --pts-dt-row-hover: color-mix(in srgb, var(--tblr-primary) 11%, var(--tblr-bg-surface));
  --pts-dt-row-radius: var(--tblr-border-radius);
  --pts-dt-row-border: color-mix(in srgb, var(--tblr-border-color) 92%, var(--tblr-body-color));
  --pts-dt-row-border-hover: color-mix(in srgb, var(--tblr-primary) 28%, var(--tblr-border-color));
  --pts-dt-row-transition: background-color 0.24s ease, border-color 0.24s ease;
  --pts-dt-row-h: 2.35rem;
  --pts-dt-head-h: 2.15rem;
  --pts-dt-rows: 10;
  --pts-dt-frame: calc(
    var(--pts-dt-head-h)
    + (var(--pts-dt-rows) * var(--pts-dt-row-h))
    + (max(0, var(--pts-dt-rows) - 1) * var(--pts-dt-row-gap))
    + var(--pts-dt-head-gap)
    + var(--pts-dt-row-gap)
  );
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 0 0 auto;
}

.pts-dt-fixed .pts-dt-scroll {
  height: var(--pts-dt-frame);
  min-height: var(--pts-dt-frame);
  max-height: var(--pts-dt-frame);
  overflow: auto;
  /* Keep row cards slightly inset from the card/frame edges. */
  padding-inline: var(--pts-dt-side-gap);
  box-sizing: border-box;
}

.pts-dt-fixed .pts-dt-toolbar,
.pts-dt-fixed .pts-dt-footer {
  flex: 0 0 auto;
}

/*
 * List pages: detail card stretches to the footer; table body fills the card
 * and scrolls internally (pagination stays pinned to the card bottom).
 */
.pts-page-scroll > .page-body > .container-xl > .card > .pts-dt-fixed {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.pts-page-scroll > .page-body > .container-xl > .card > .pts-dt-fixed .pts-dt-scroll {
  flex: 1 1 auto;
  height: auto;
  min-height: 0;
  max-height: none;
}

/* Inside manage detail: page does not scroll; detail pane scrolls */
.pts-manage-section-body > .pts-dt-card:not(.pts-dt-fill) {
  flex: 0 0 auto;
}

.pts-manage-section-body > .pts-dt-card:not(.pts-dt-fill) .pts-dt-fixed .pts-dt-scroll {
  height: var(--pts-dt-frame);
  min-height: var(--pts-dt-frame);
  max-height: var(--pts-dt-frame);
}

.pts-manage-section-body:has(> .pts-dt-fill) {
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.pts-dt-fill {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.pts-dt-fill .pts-dt-fixed {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.pts-manage-section-body .pts-dt-fill .pts-dt-fixed .pts-dt-scroll,
.pts-dt-fill .pts-dt-fixed .pts-dt-scroll {
  flex: 1 1 auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--tblr-primary) 28%, transparent) transparent;
}

.pts-dt-fill .pts-dt-fixed .pts-dt-scroll::-webkit-scrollbar {
  width: 0.65rem;
  height: 0.65rem;
}

.pts-dt-fill .pts-dt-fixed .pts-dt-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.pts-dt-fill .pts-dt-fixed .pts-dt-scroll::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: color-mix(in srgb, var(--tblr-primary) 28%, transparent);
  border: 2px solid transparent;
  background-clip: padding-box;
}

.pts-lang-stat {
  cursor: pointer;
  color: inherit;
}

.pts-lang-stat.is-on {
  border-color: color-mix(in srgb, var(--tblr-primary) 55%, var(--tblr-border-color));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--tblr-primary) 28%, transparent);
}

/* Table: shrink-to-fit column (do not use Tabler .w-1 — that is 0.25rem). */
.pts-dt-table th.pts-col-fit,
.pts-dt-table td.pts-col-fit {
  width: 1%;
  white-space: nowrap;
  text-align: center;
  vertical-align: middle;
}

.pts-dev-progress-col {
  min-width: 9.5rem;
  max-width: 14rem;
}

.pts-dev-progress {
  min-width: 8.5rem;
}

.pts-dev-progress-pct {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  font-size: 0.78rem;
  line-height: 1.1;
  color: var(--tblr-body-color);
}

.pts-dev-progress-label {
  font-size: 0.68rem;
  line-height: 1.1;
  max-width: 6.5rem;
  color: var(--tblr-secondary);
}

.pts-dev-progress .progress {
  height: 0.45rem;
  background: color-mix(in srgb, var(--tblr-border-color) 70%, var(--tblr-bg-surface-secondary));
}

.pts-lang-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 1.25rem;
  padding: 0;
  margin: 0;
}

.pts-lang-status.is-locked {
  opacity: 0.5;
}

.pts-lang-status .form-check {
  min-height: 1.25rem;
  margin-bottom: 0;
}

/* Language status switch follows Theme Base / primary */
.pts-lang-status .form-check-input {
  cursor: pointer;
  border-color: color-mix(in srgb, var(--tblr-primary) 28%, var(--tblr-border-color));
  background-color: color-mix(in srgb, var(--tblr-primary) 8%, var(--tblr-bg-surface));
}

.pts-lang-status .form-check-input:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--tblr-primary) 48%, var(--tblr-border-color));
}

.pts-lang-status .form-check-input:focus {
  border-color: var(--tblr-primary);
  box-shadow: 0 0 0 0.25rem rgba(var(--tblr-primary-rgb), 0.22);
  --tblr-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffffff'/%3e%3c/svg%3e");
}

.pts-lang-status .form-check-input:checked {
  background-color: var(--tblr-primary);
  border-color: var(--tblr-primary);
}

.pts-lang-status .form-check-input:checked:focus {
  box-shadow: 0 0 0 0.25rem rgba(var(--tblr-primary-rgb), 0.28);
}

.pts-lang-status .form-check-input:disabled {
  cursor: not-allowed;
  opacity: 0.65;
}

[data-bs-theme="dark"] .pts-dt-fixed {
  --pts-dt-row-bg: color-mix(in srgb, var(--tblr-bg-surface) 92%, #000);
  --pts-dt-row-bg-alt: color-mix(in srgb, var(--tblr-primary) 9%, var(--tblr-bg-surface));
  --pts-dt-row-hover: color-mix(in srgb, var(--tblr-primary) 16%, var(--tblr-bg-surface));
}

.pts-dt-fixed .pts-dt-table {
  margin-bottom: 0;
  border-collapse: separate;
  border-spacing: 0 var(--pts-dt-row-gap);
}

.pts-dt-fixed .pts-dt-table thead th {
  height: var(--pts-dt-head-h);
  vertical-align: middle;
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--tblr-bg-surface);
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
  font-size: 0.75rem;
  border: none;
  box-shadow: 0 1px 0 color-mix(in srgb, var(--tblr-border-color) 65%, transparent);
}

.pts-dt-fixed .pts-dt-table tbody tr {
  height: var(--pts-dt-row-h);
}

.pts-dt-fixed .pts-dt-table tbody td {
  vertical-align: middle;
  padding-top: 0.3rem;
  padding-bottom: 0.3rem;
  background-color: var(--pts-dt-row-bg);
  background-clip: padding-box;
  /* Kill Tabler cell wash so card borders stay visible. */
  box-shadow: none;
  transition: var(--pts-dt-row-transition);
  border-top: var(--tblr-border-width) var(--tblr-border-style) var(--pts-dt-row-border);
  border-bottom: var(--tblr-border-width) var(--tblr-border-style) var(--pts-dt-row-border);
  border-left: none;
  border-right: none;
}

.pts-dt-fixed .pts-dt-table tbody td:first-child {
  border-left: var(--tblr-border-width) var(--tblr-border-style) var(--pts-dt-row-border);
  border-radius: var(--pts-dt-row-radius) 0 0 var(--pts-dt-row-radius);
}

.pts-dt-fixed .pts-dt-table tbody td:last-child {
  border-right: var(--tblr-border-width) var(--tblr-border-style) var(--pts-dt-row-border);
  border-radius: 0 var(--pts-dt-row-radius) var(--pts-dt-row-radius) 0;
}

/* Tabler .card-table zeros first-row top border — restore card outline. */
.pts-dt-fixed .pts-dt-table.card-table tbody tr:first-child > td,
.pts-dt-fixed .pts-dt-table.card-table tbody tr:first-child > th {
  border-top: var(--tblr-border-width) var(--tblr-border-style) var(--pts-dt-row-border);
}

.pts-dt-fixed .pts-dt-table.card-table tbody tr:hover:first-child > td,
.pts-dt-fixed .pts-dt-table.card-table tbody tr:hover:first-child > th {
  border-top-color: var(--pts-dt-row-border-hover);
}

.pts-dt-fixed .pts-dt-table tbody tr:nth-child(odd) td {
  background-color: var(--pts-dt-row-bg-alt);
}

.pts-dt-fixed .pts-dt-table tbody tr:hover td {
  background-color: var(--pts-dt-row-hover);
  border-color: var(--pts-dt-row-border-hover);
}

/* Manage / list pages: tighter vertical rhythm (no browser zoom needed) */
.pts-manage-section-body > .row.row-cards,
.pts-manage-section-body > .alert,
.pts-manage-section-body > .card.mb-3,
.pts-manage-section-body > .pts-lang-filters {
  flex: 0 0 auto;
  margin-bottom: 0.65rem !important;
}

.pts-manage-section-body .card-sm .card-body {
  padding: 0.55rem 0.75rem;
}

.pts-manage-section-body .card-sm .h3 {
  font-size: 1.25rem;
  margin-bottom: 0;
}

.pts-manage-section-body .subheader {
  margin-bottom: 0.15rem;
  font-size: 0.6875rem;
}

.pts-manage-section .d-flex.mb-3 {
  margin-bottom: 0.55rem !important;
}

/* Summary strips above list/cluster detail cards */
.pts-page-scroll > .page-body > .container-xl > .row.row-cards > [class*="col-"] > .card.card-sm .card-body {
  padding: 0.55rem 0.75rem;
}

.pts-page-scroll > .page-body > .container-xl > .row.row-cards > [class*="col-"] > .card.card-sm .h1 {
  font-size: 1.45rem;
  line-height: 1.15;
}

.page-body > .container-xl > .card > .card-header {
  padding-top: 0.55rem;
  padding-bottom: 0.55rem;
}

.page-body > .container-xl > .card > .card-body {
  padding-top: 0.65rem;
  padding-bottom: 0.65rem;
}

.footer {
  padding-top: 0.45rem !important;
  padding-bottom: max(0.45rem, env(safe-area-inset-bottom, 0px)) !important;
}

@media (max-height: 860px) {
  .pts-dt-fixed {
    --pts-dt-row-h: 2.2rem;
    --pts-dt-head-h: 2rem;
  }
}

@media (max-height: 760px) {
  .pts-page-scroll > .page-body > .container-xl > .pts-page-header,
  .page-wrapper .pts-manage-page > .page-body > .container-xl > .pts-page-header {
    margin-top: 0.45rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }
}

.pts-manage-nav .list-group-transparent .list-group-item {
  border-radius: var(--tblr-border-radius);
  margin-bottom: 0.15rem;
}

.pts-manage-nav .list-group-item.active small {
  color: inherit;
  opacity: 0.72;
}

.pts-manage-nav-copy {
  min-width: 0;
}

.pts-manage-nav-head .avatar .icon,
.pts-manage-nav-head .avatar svg {
  width: 1.1rem;
  height: 1.1rem;
}

.pts-modules-stats .card-sm .h3 {
  line-height: 1.25;
}

.pts-modules-table {
  overflow: hidden;
}

.pts-modules-table .pts-dt-toolbar {
  padding-left: 1rem;
  padding-right: 1rem;
}

.pts-modules-row .avatar .icon,
.pts-modules-row .avatar svg {
  width: 1rem;
  height: 1rem;
}

.pts-modules-summary {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-width: 36rem;
}

.pts-lang-filters .form-label {
  margin-bottom: 0.35rem;
}

.pts-lang-filters-meta {
  line-height: 1.45;
  padding-bottom: 0.15rem;
}

.pts-lang-cell {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-width: 28rem;
}

.pts-lang-task-eta {
  font-size: 1rem !important;
  line-height: 1.35;
}

.pts-lang-task-params .form-control[readonly] {
  background: var(--tblr-bg-surface-secondary);
}

.pts-dev-usage-card {
  height: 100%;
}

/* Development usage metrics — keep four KPI cards on one row when space allows */
.pts-dev-usage > .row.pts-dev-usage-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.pts-dev-usage > .row.pts-dev-usage-metrics > .pts-dev-usage-metric {
  grid-column: auto;
  width: auto !important;
  max-width: none !important;
  min-width: 0;
}

@media (max-width: 767.98px) {
  .pts-dev-usage > .row.pts-dev-usage-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 479.98px) {
  .pts-dev-usage > .row.pts-dev-usage-metrics {
    grid-template-columns: 1fr;
  }
}

.pts-dev-usage .avatar .icon,
.pts-dev-usage .avatar svg {
  width: 1.15rem;
  height: 1.15rem;
}

.pts-dev-table {
  max-width: 100%;
}

.pts-dev-pre {
  font-family: var(--tblr-font-monospace, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
  max-width: 100%;
}

.pts-dev-detail {
  min-width: 0;
}

.pts-dev-detail .form-control {
  max-width: 100%;
}

@media (max-width: 575.98px) {
  .pts-dev-usage .form-control {
    min-width: 0;
  }
}

/* —— Home dashboard —— */
.pts-home .pts-home-card {
  --pts-home-accent: var(--tblr-primary);
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border: 1px solid color-mix(in srgb, var(--pts-home-accent) 12%, var(--tblr-border-color));
  background:
    linear-gradient(165deg, color-mix(in srgb, var(--pts-home-accent) 5%, var(--tblr-bg-surface)) 0%, var(--tblr-bg-surface) 55%);
  box-shadow: 0 8px 22px -18px color-mix(in srgb, var(--pts-home-accent) 40%, transparent);
  opacity: 1;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

@media (prefers-reduced-motion: no-preference) {
  .pts-home .pts-home-card.is-enter {
    opacity: 0;
    animation: pts-home-enter 0.35s ease forwards;
    animation-delay: calc(var(--i, 0) * 28ms);
  }
}

.pts-home a.pts-home-card:hover,
.pts-home .pts-home-card:hover {
  box-shadow: 0 12px 28px -20px color-mix(in srgb, var(--pts-home-accent) 50%, transparent);
  border-color: color-mix(in srgb, var(--pts-home-accent) 28%, var(--tblr-border-color));
}

.pts-home .pts-home-card-glow {
  pointer-events: none;
  position: absolute;
  inset: -40% -20% auto auto;
  width: 9rem;
  height: 9rem;
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--pts-home-accent) 16%, transparent), transparent 72%);
  opacity: 0.45;
}

.pts-home .pts-home-count {
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
}

.pts-home .pts-home-metric .card-body {
  padding: 1rem 1.05rem 0.95rem;
  min-height: 7.75rem;
}

.pts-home .pts-home-metric .subheader {
  font-size: 0.72rem;
}

.pts-home .pts-home-metric .pts-home-count,
.pts-home .pts-home-metric .pts-home-metric-value {
  font-size: 1.55rem;
  line-height: 1.2;
  text-align: center !important;
  width: 100%;
  display: block;
  color: var(--tblr-primary) !important;
  margin-top: 0.35rem;
  margin-bottom: 0.55rem !important;
}

.pts-home .pts-home-progress {
  height: 0.28rem;
  overflow: hidden;
  background: color-mix(in srgb, var(--pts-home-accent) 10%, var(--tblr-bg-surface-secondary, var(--tblr-gray-100)));
}

.pts-home .pts-home-progress .progress-bar {
  background: var(--pts-home-accent);
  transition: width 0.45s ease;
}

.pts-home .pts-home-metric.is-ok { --pts-home-accent: var(--tblr-primary); }
.pts-home .pts-home-metric.is-warn { --pts-home-accent: var(--tblr-yellow); }
.pts-home .pts-home-metric.is-danger { --pts-home-accent: var(--tblr-danger); }
.pts-home .pts-home-metric.is-mute { --pts-home-accent: var(--tblr-secondary); }

.pts-home .pts-home-metric::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 2px;
  background: var(--pts-home-accent);
  opacity: 0.75;
}

.pts-home .pts-home-greeting-text {
  margin: 0;
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--tblr-body-color);
}

.pts-home .pts-home-license .card-body {
  position: relative;
  z-index: 1;
  padding: 1.15rem 1.25rem;
}

.pts-home .pts-home-license-grid {
  display: grid;
  gap: 0.85rem 1.25rem;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
}

.pts-home .pts-home-license-grid dt {
  margin: 0 0 0.2rem;
  font-size: 0.72rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--tblr-secondary);
}

.pts-home .pts-home-license-grid dd {
  margin: 0;
  font-weight: 600;
}

.pts-home .pts-home-license-modules {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.pts-home .pts-home-license-modules li {
  margin: 0;
}

/* Welcome — template-style, no metrics */
.pts-home .pts-home-hero {
  --pts-home-accent: var(--tblr-primary);
  min-height: 0;
  color: var(--tblr-body-color);
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb, var(--tblr-primary) 8%, var(--tblr-bg-surface)) 0%,
      var(--tblr-bg-surface) 48%,
      color-mix(in srgb, var(--tblr-primary) 4%, var(--tblr-bg-surface)) 100%
    );
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 14%, var(--tblr-border-color));
  box-shadow: 0 10px 28px -22px color-mix(in srgb, var(--tblr-primary) 45%, transparent);
}

.pts-home .pts-home-hero:hover {
  border-color: color-mix(in srgb, var(--tblr-primary) 26%, var(--tblr-border-color));
  box-shadow: 0 12px 30px -20px color-mix(in srgb, var(--tblr-primary) 50%, transparent);
}

.pts-home .pts-home-hero-body {
  position: relative;
  z-index: 1;
  padding: 1.15rem 1.25rem;
}

.pts-home .pts-home-hero-main {
  display: flex;
  gap: 1rem;
  align-items: center;
}

.pts-home .pts-home-hero-avatar {
  flex: 0 0 auto;
  width: 3.25rem;
  height: 3.25rem;
  border-radius: calc(var(--tblr-border-radius) + 0.35rem);
  display: grid;
  place-items: center;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 22%, transparent);
  box-shadow: none;
}

.pts-home .pts-home-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0.3rem;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--tblr-secondary);
  background: transparent;
  border: 0;
  padding: 0;
}

.pts-home .pts-home-dot {
  width: 0.22rem;
  height: 0.22rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--tblr-primary) 55%, var(--tblr-secondary));
}

.pts-home .pts-home-hero-title {
  margin: 0 0 0.2rem;
  font-size: clamp(1.2rem, 1.8vw, 1.55rem);
  line-height: 1.2;
  letter-spacing: -0.025em;
  font-weight: 700;
  color: var(--tblr-body-color);
}

.pts-home .pts-home-hero-title em {
  font-style: normal;
  color: var(--tblr-primary);
}

.pts-home .pts-home-hero-copy {
  margin: 0;
  color: var(--tblr-secondary);
  font-size: 0.9rem;
}

.pts-home .pts-home-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-left: auto;
  flex: 0 0 auto;
}

.pts-home .pts-home-hero-actions .btn {
  min-height: 2.15rem;
  display: inline-flex;
  align-items: center;
  box-shadow: none;
}

/* Error + Cursor panels */
.pts-home .pts-home-panel {
  min-height: 0;
}

.pts-home .pts-home-panel .card-body {
  padding: 1.1rem 1.1rem;
  min-height: 7.75rem;
}

.pts-home .pts-home-panel-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.pts-home .pts-home-panel-kicker {
  font-size: 0.66rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tblr-secondary);
  margin-bottom: 0.15rem;
}

.pts-home .pts-home-panel-label {
  font-weight: 650;
  letter-spacing: -0.01em;
}

.pts-home .pts-home-panel-value {
  margin: 0.55rem 0 0.4rem;
  font-size: clamp(1.7rem, 2.4vw, 2.1rem);
  line-height: 1;
  font-weight: 700;
  letter-spacing: -0.04em;
}

.pts-home .pts-home-panel-value.is-danger {
  color: var(--tblr-danger);
}

.pts-home .pts-home-panel-foot {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  color: var(--tblr-secondary);
  font-size: 0.82rem;
}

.pts-home .pts-home-panel-link {
  color: var(--pts-home-accent);
  font-weight: 600;
}

.pts-home .pts-home-gauge {
  --g: 0;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  background:
    radial-gradient(circle at center, var(--pts-home-accent) 56%, transparent 57%),
    conic-gradient(var(--pts-home-accent) calc(var(--g) * 1%), color-mix(in srgb, var(--pts-home-accent) 16%, transparent) 0);
}

.pts-home .pts-home-error {
  --pts-home-accent: var(--tblr-green);
  min-height: 16.5rem;
  display: flex;
  flex-direction: column;
}
.pts-home .pts-home-error.has-errors { --pts-home-accent: var(--tblr-danger); }

.pts-home .pts-home-error .card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.pts-home .pts-home-ops-col {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.pts-home .pts-home-ops-col > .card {
  flex: 1;
  width: 100%;
  min-height: 16.5rem;
}

.pts-home .pts-home-cursor {
  --pts-home-accent: var(--tblr-primary);
  --pts-density-failed-fill: color-mix(in srgb, var(--tblr-danger) 58%, transparent);
  --pts-density-failed-stroke: var(--tblr-danger);
  --pts-density-done-fill: color-mix(in srgb, var(--tblr-primary) 16%, transparent);
  --pts-density-done-stroke: color-mix(in srgb, var(--tblr-primary) 42%, var(--tblr-body-color));
  --pts-density-pending-fill: color-mix(in srgb, var(--tblr-primary) 34%, transparent);
  --pts-density-pending-stroke: color-mix(in srgb, var(--tblr-primary) 58%, var(--tblr-body-color));
  --pts-density-active-fill: color-mix(in srgb, var(--tblr-primary) 62%, transparent);
  --pts-density-active-stroke: var(--tblr-primary);
  min-height: 16.5rem;
  display: flex;
  flex-direction: column;
}

.pts-home .pts-home-cursor .pts-home-cursor-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  height: 100%;
  min-height: 0;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.pts-home .pts-home-cursor.is-working { --pts-home-accent: var(--tblr-primary); }
.pts-home .pts-home-cursor.is-waiting { --pts-home-accent: var(--tblr-primary); }
.pts-home .pts-home-cursor.is-error { --pts-home-accent: var(--tblr-primary); }
.pts-home .pts-home-cursor.is-idle { --pts-home-accent: var(--tblr-primary); }

.pts-home .pts-home-cursor-mark {
  position: relative;
  width: 3.2rem;
  height: 3.2rem;
}

.pts-home .pts-home-cursor-mark-core {
  position: absolute;
  inset: 0;
  border-radius: 0.85rem;
  display: grid;
  place-items: center;
  color: #fff;
  background: var(--pts-home-accent);
}

.pts-home .pts-home-cursor-title {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-bottom: 0.3rem;
}

.pts-home .pts-home-cursor-console {
  font-family: var(--tblr-font-monospace, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);
  font-size: 0.82rem;
  color: color-mix(in srgb, var(--pts-home-accent) 45%, var(--tblr-secondary));
  background: color-mix(in srgb, var(--pts-home-accent) 6%, transparent);
  border: 1px solid color-mix(in srgb, var(--pts-home-accent) 12%, transparent);
  border-radius: 0.45rem;
  padding: 0.4rem 0.55rem;
}

.pts-home .pts-home-cursor-prompt {
  display: inline-block;
  margin-right: 0.35rem;
  color: var(--pts-home-accent);
}

.pts-home .pts-home-density {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

.pts-home .pts-home-cursor .pts-home-density {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.pts-home .pts-home-cursor .pts-home-density-bars {
  display: none;
}

.pts-home .pts-home-density-chart-link {
  display: block;
  border-radius: 0.55rem;
  transition: background 0.15s ease;
}

.pts-home .pts-home-density-chart-link:hover {
  background: color-mix(in srgb, var(--pts-home-accent) 4%, transparent);
}

.pts-home .pts-home-density-chart {
  position: relative;
  height: 8.5rem;
  overflow: hidden;
  border-radius: 0.45rem;
  background: color-mix(in srgb, var(--pts-home-accent) 6%, var(--tblr-bg-surface));
  border: 1px solid color-mix(in srgb, var(--pts-home-accent) 10%, var(--tblr-border-color));
}

.pts-home .pts-home-density-svg {
  display: block;
  width: 100%;
  height: 8.5rem;
  overflow: visible;
}

.pts-home .pts-home-density-grid {
  stroke: color-mix(in srgb, var(--tblr-border-color) 88%, transparent);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.pts-home .pts-home-density-area {
  vector-effect: non-scaling-stroke;
}

.pts-home .pts-home-density-line {
  fill: none;
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pts-home .pts-home-density-area--failed { fill: var(--pts-density-failed-fill); }
.pts-home .pts-home-density-line--failed { stroke: var(--pts-density-failed-stroke); }

.pts-home .pts-home-density-area--done { fill: var(--pts-density-done-fill); }
.pts-home .pts-home-density-line--done { stroke: var(--pts-density-done-stroke); }

.pts-home .pts-home-density-area--pending { fill: var(--pts-density-pending-fill); }
.pts-home .pts-home-density-line--pending { stroke: var(--pts-density-pending-stroke); }

.pts-home .pts-home-density-area--active { fill: var(--pts-density-active-fill); }
.pts-home .pts-home-density-line--active { stroke: var(--pts-density-active-stroke); }

.pts-home .pts-home-density-skeleton {
  height: 8.5rem;
  border-radius: 0.45rem;
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--pts-home-accent) 10%, var(--tblr-bg-surface)),
    color-mix(in srgb, var(--pts-home-accent) 3%, var(--tblr-bg-surface))
  );
  border: 1px solid color-mix(in srgb, var(--pts-home-accent) 10%, var(--tblr-border-color));
}

.pts-home .pts-home-density-meta {
  display: inline-flex;
  gap: 0.75rem;
  font-size: 0.78rem;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  color: var(--tblr-body-color);
  margin-top: 0.35rem;
}

.pts-home .pts-home-density-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}

.pts-home .pts-home-density-range {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.28rem;
  max-width: 22rem;
  flex-shrink: 0;
}

@media (max-width: 767.98px) {
  .pts-home .pts-home-density-head {
    flex-direction: column;
    align-items: stretch;
  }

  .pts-home .pts-home-density-range {
    max-width: none;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 0.15rem;
    -webkit-overflow-scrolling: touch;
  }

  .pts-home .pts-home-density-range-btn {
    flex: 0 0 auto;
  }
}

.pts-home .pts-home-density-range-btn {
  appearance: none;
  border: 1px solid color-mix(in srgb, var(--pts-home-accent) 18%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--pts-home-accent) 5%, var(--tblr-bg-surface));
  color: var(--tblr-secondary);
  border-radius: 999px;
  padding: 0.18rem 0.55rem;
  font-size: 0.68rem;
  font-weight: 650;
  line-height: 1.35;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.pts-home .pts-home-density-range-btn:hover {
  color: var(--tblr-body-color);
  border-color: color-mix(in srgb, var(--pts-home-accent) 34%, var(--tblr-border-color));
}

.pts-home .pts-home-density-range-btn.is-active {
  color: #fff;
  border-color: var(--pts-home-accent);
  background: var(--pts-home-accent);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--pts-home-accent) 24%, transparent);
}

.pts-home .pts-home-density-label {
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--pts-home-accent) 70%, var(--tblr-body-color));
}

.pts-home .pts-home-density-hint {
  font-size: 0.75rem;
  color: var(--tblr-secondary);
}

.pts-home .pts-home-density-meta small {
  font-weight: 500;
  color: var(--tblr-secondary);
}

.pts-home .pts-home-density-bars {
  display: grid;
  grid-template-columns: repeat(14, minmax(0, 1fr));
  align-items: end;
  gap: 0.28rem;
  height: 7rem;
  padding: 0.15rem 0 0;
}

.pts-home .pts-home-density-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 0.28rem;
  min-width: 0;
  height: 100%;
}

.pts-home .pts-home-density-bar {
  width: 100%;
  max-width: 1.1rem;
  min-height: 0.2rem;
  border-radius: 0.28rem 0.28rem 0.12rem 0.12rem;
  background: color-mix(in srgb, var(--pts-home-accent) 18%, transparent);
  transition: height 0.25s ease, background-color 0.2s ease;
}

.pts-home .pts-home-density-bar.is-hot {
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--pts-home-accent) 92%, #fff),
    color-mix(in srgb, var(--pts-home-accent) 70%, transparent)
  );
  box-shadow: 0 6px 14px -10px color-mix(in srgb, var(--pts-home-accent) 70%, transparent);
}

.pts-home .pts-home-density-day {
  font-size: 0.62rem;
  line-height: 1;
  color: var(--tblr-secondary);
  font-variant-numeric: tabular-nums;
}

.pts-home .pts-home-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.18rem 0.5rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--pts-home-accent) 78%, #000);
  background: color-mix(in srgb, var(--pts-home-accent) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--pts-home-accent) 20%, transparent);
}

.pts-home .pts-home-pulse {
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: var(--pts-home-accent);
}

/* Development stats */
.pts-home .pts-home-stat {
  min-height: 7.75rem;
}

.pts-home .pts-home-stat .card-body {
  padding: 1rem 1.05rem 0.95rem;
  min-height: 7.75rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.pts-home .pts-home-stat-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.7rem;
}

.pts-home .pts-home-stat-icon {
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 0.65rem;
  display: grid;
  place-items: center;
  color: var(--pts-home-accent);
  background: color-mix(in srgb, var(--pts-home-accent) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--pts-home-accent) 14%, transparent);
}

.pts-home .pts-home-stat-go {
  opacity: 0.35;
  color: var(--pts-home-accent);
  font-weight: 700;
  transition: opacity 0.2s ease;
}

.pts-home .pts-home-stat:hover .pts-home-stat-go {
  opacity: 1;
}

.pts-home .pts-home-stat-label {
  font-size: 0.88rem;
  font-weight: 650;
  letter-spacing: -0.01em;
}

.pts-home .pts-home-stat-value {
  margin: 0.25rem 0 0.1rem;
  font-size: clamp(1.55rem, 2.2vw, 1.9rem);
  line-height: 1;
  font-weight: 700;
}

.pts-home .pts-home-stat-meta {
  color: var(--tblr-secondary);
  font-size: 0.78rem;
  margin-bottom: 0.65rem;
}

.pts-home .pts-home-stat-track {
  height: 0.22rem;
  border-radius: 999px;
  overflow: hidden;
  background: color-mix(in srgb, var(--pts-home-accent) 10%, transparent);
}

.pts-home .pts-home-stat-track > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--pts-home-accent);
  transition: width 0.45s ease;
}

.pts-home .pts-home-stat.is-waiting { --pts-home-accent: var(--tblr-orange); }
.pts-home .pts-home-stat.is-working { --pts-home-accent: var(--tblr-teal); }
.pts-home .pts-home-stat.is-total { --pts-home-accent: var(--tblr-primary); }
.pts-home .pts-home-stat.is-remain { --pts-home-accent: var(--tblr-azure); }

@keyframes pts-home-enter {
  from { opacity: 0; }
  to { opacity: 1; }
}

@media (max-width: 991.98px) {
  .pts-home .pts-home-hero-main {
    flex-wrap: wrap;
  }

  .pts-home .pts-home-hero-actions {
    margin-left: 0;
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pts-home .pts-home-card,
  .pts-home .pts-home-card.is-enter {
    animation: none !important;
    opacity: 1;
  }
}

/* —— Combo layout sidebar —— */
/* Own flex layout: neutralize Tabler fixed-sidebar + margin-left offsets */
.page:has(> .pts-sidebar) {
  flex-direction: row;
  align-items: stretch;
}

.pts-sidebar.navbar-vertical.navbar-expand-lg,
.pts-sidebar.navbar-vertical {
  --pts-sidebar-width: min(14.75rem, 40vw);
  --pts-sidebar-bg: color-mix(in srgb, var(--tblr-gray-900, #0f172a) 92%, #000);
  --pts-sidebar-surface: color-mix(in srgb, var(--tblr-gray-800, #1e293b) 88%, #000);
  --pts-sidebar-text: color-mix(in srgb, #fff 74%, transparent);
  --pts-sidebar-muted: color-mix(in srgb, #fff 44%, transparent);
  --pts-sidebar-border: color-mix(in srgb, #fff 9%, transparent);
  --tblr-icon-color: color-mix(in srgb, #fff 55%, transparent);
  position: relative !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  flex: 0 0 var(--pts-sidebar-width);
  width: var(--pts-sidebar-width) !important;
  min-width: var(--pts-sidebar-width);
  max-width: var(--pts-sidebar-width);
  align-self: stretch;
  height: auto !important;
  min-height: 0;
  max-height: none;
  overflow: hidden;
  isolation: isolate;
  overscroll-behavior: contain;
  z-index: 1030;
  padding: 0 !important;
  background:
    radial-gradient(120% 48% at 0% -8%, color-mix(in srgb, var(--tblr-primary) 28%, transparent), transparent 58%),
    radial-gradient(90% 40% at 100% 100%, color-mix(in srgb, var(--tblr-primary) 12%, transparent), transparent 55%),
    linear-gradient(180deg, var(--pts-sidebar-surface) 0%, var(--pts-sidebar-bg) 100%);
  border-right: 1px solid var(--pts-sidebar-border);
  box-shadow: 8px 0 28px -24px color-mix(in srgb, #000 80%, transparent);
}

/* Kill Tabler’s fixed-sidebar companion offset (was doubling with flex width). */
.pts-sidebar.navbar-vertical ~ .page-wrapper,
.pts-sidebar.navbar-vertical ~ .navbar,
.navbar-expand-lg.pts-sidebar.navbar-vertical ~ .page-wrapper,
.navbar-expand-lg.pts-sidebar.navbar-vertical ~ .navbar,
.navbar-expand-md.pts-sidebar.navbar-vertical ~ .page-wrapper,
.navbar-expand-md.pts-sidebar.navbar-vertical ~ .navbar,
.navbar-expand-sm.pts-sidebar.navbar-vertical ~ .page-wrapper,
.navbar-expand-sm.pts-sidebar.navbar-vertical ~ .navbar,
.navbar-expand-xl.pts-sidebar.navbar-vertical ~ .page-wrapper,
.navbar-expand-xl.pts-sidebar.navbar-vertical ~ .navbar {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.page:has(> .pts-sidebar) > .page-wrapper {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  max-width: 100%;
  margin-left: 0 !important;
}

.pts-sidebar.navbar-vertical::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--tblr-primary) 85%, #fff),
    color-mix(in srgb, var(--tblr-primary) 35%, transparent) 55%,
    transparent
  );
  pointer-events: none;
}

.pts-sidebar .pts-sidebar-shell {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 100%;
  min-height: 0;
  padding: 0 0.55rem 0.65rem;
  padding-top: 0;
  overflow: hidden;
}

.pts-sidebar .pts-sidebar-scrim {
  display: none;
}

.pts-sidebar .pts-sidebar-top {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex: 0 0 var(--pts-chrome-top-height);
  box-sizing: border-box;
  height: var(--pts-chrome-top-height);
  min-height: var(--pts-chrome-top-height);
  max-height: var(--pts-chrome-top-height);
  margin: 0 -0.55rem;
  padding: 0 0.55rem;
  border-bottom: 1px solid var(--pts-sidebar-border);
}

.pts-sidebar .pts-sidebar-toggler {
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 24%, transparent);
  border-radius: calc(var(--tblr-border-radius) + 0.1rem);
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
}

.pts-sidebar .pts-sidebar-brand {
  margin: 0;
  padding: 0;
  width: auto;
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  line-height: 1;
}

.pts-sidebar .pts-sidebar-brand-link {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  text-decoration: none;
  line-height: 1;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
  appearance: none;
}

.pts-sidebar .pts-sidebar-brand-link:disabled {
  opacity: 0.7;
  cursor: wait;
}

.pts-sidebar .pts-sidebar-brand-link:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--tblr-primary) 70%, transparent);
  outline-offset: 2px;
  border-radius: 0.25rem;
}

.pts-sidebar .pts-brand-wordmark {
  font-size: 1.35rem;
  line-height: 1;
  transform: none;
}

.pts-sidebar #pts-sidebar-menu {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.pts-sidebar .pts-sidebar-nav {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0.4rem 0 0.25rem;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  scroll-padding-block: 0.55rem;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--tblr-primary) 35%, transparent) transparent;
}

.pts-sidebar .pts-sidebar-nav::-webkit-scrollbar {
  width: 0.45rem;
}

.pts-sidebar .pts-sidebar-nav::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: color-mix(in srgb, var(--tblr-primary) 32%, transparent);
  border: 2px solid transparent;
  background-clip: padding-box;
}

.pts-sidebar .pts-sidebar-label {
  margin: 0.05rem 0.4rem 0.4rem;
  font-size: 0.62rem;
  font-weight: 650;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--pts-sidebar-muted);
}

.pts-sidebar .navbar-nav,
.pts-sidebar .pts-sidebar-menu {
  gap: 0.18rem;
  padding: 0 0.2rem 0.1rem;
}

.pts-sidebar .nav-item {
  margin: 0;
}

/* Top-level categories: soft framed chips (compact for min monitor) */
.pts-sidebar .pts-sidebar-menu > .nav-item {
  padding: 0.1rem;
  border: 1px solid color-mix(in srgb, #fff 11%, transparent);
  border-radius: calc(var(--tblr-border-radius) + 0.18rem);
  background: color-mix(in srgb, #fff 2%, transparent);
  box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 6%, transparent);
  transition: border-color 0.16s ease, background-color 0.16s ease, box-shadow 0.16s ease;
}

.pts-sidebar .pts-sidebar-menu > .nav-item:hover,
.pts-sidebar .pts-sidebar-menu > .pts-sidebar-branch.is-open,
.pts-sidebar .pts-sidebar-menu > .nav-item:has(> .nav-link.active),
.pts-sidebar .pts-sidebar-menu > .pts-sidebar-branch.active {
  border-color: color-mix(in srgb, var(--tblr-primary) 34%, color-mix(in srgb, #fff 10%, transparent));
  background: color-mix(in srgb, var(--tblr-primary) 7%, transparent);
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, #fff 8%, transparent),
    inset 0 0 0 1px color-mix(in srgb, var(--tblr-primary) 16%, transparent);
}

.pts-sidebar .nav-link,
.pts-sidebar .pts-sidebar-branch-toggle {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  width: 100%;
  margin: 0;
  padding: 0.36rem 0.45rem;
  border-radius: calc(var(--tblr-border-radius) + 0.08rem);
  color: var(--pts-sidebar-text) !important;
  border: 1px solid transparent;
  background: transparent;
  text-align: left;
  cursor: pointer;
  font: inherit;
  scroll-margin-block: 0.55rem;
  transition: background-color 0.16s ease, color 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

.pts-sidebar .nav-link:focus,
.pts-sidebar .pts-sidebar-branch-toggle:focus {
  outline: none;
}

.pts-sidebar .pts-sidebar-branch-caret,
.pts-sidebar .pts-sidebar-leaf-caret {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  margin-left: auto;
  border: 1px solid #fff;
  border-radius: 50%;
  background-color: color-mix(in srgb, var(--tblr-primary) 14%, transparent);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 0.58rem;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, #fff 4%, transparent);
  flex: 0 0 auto;
  transition: background-color 0.16s ease, border-color 0.16s ease, transform 0.16s ease, box-shadow 0.16s ease;
}

/* Branch: down when closed, up when open */
.pts-sidebar .pts-sidebar-branch-caret {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6 -6'/%3E%3C/svg%3E");
}

/* Leaf: right chevron */
.pts-sidebar .pts-sidebar-leaf-caret {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6l-6 6'/%3E%3C/svg%3E");
}

.pts-sidebar .pts-sidebar-branch.is-open > .pts-sidebar-branch-toggle .pts-sidebar-branch-caret,
.pts-sidebar .pts-sidebar-branch-toggle:hover .pts-sidebar-branch-caret,
.pts-sidebar .pts-sidebar-branch-toggle:focus-visible .pts-sidebar-branch-caret,
.pts-sidebar .pts-sidebar-branch.active > .pts-sidebar-branch-toggle .pts-sidebar-branch-caret,
.pts-sidebar .nav-link:hover .pts-sidebar-leaf-caret,
.pts-sidebar .nav-link:focus-visible .pts-sidebar-leaf-caret,
.pts-sidebar .nav-link.active .pts-sidebar-leaf-caret,
.pts-sidebar .nav-item.active > .nav-link .pts-sidebar-leaf-caret {
  border-color: #fff;
  background-color: color-mix(in srgb, var(--tblr-primary) 28%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, #fff 8%, transparent);
}

.pts-sidebar .pts-sidebar-branch.is-open > .pts-sidebar-branch-toggle .pts-sidebar-branch-caret {
  transform: rotate(180deg);
}

.pts-sidebar .nav-link-icon {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  margin-right: 0 !important;
  border-radius: calc(var(--tblr-border-radius) * 0.9);
  color: var(--tblr-icon-color);
  background: color-mix(in srgb, var(--tblr-primary) 8%, transparent);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 22%, transparent);
  flex: 0 0 auto;
}

.pts-sidebar .nav-link-icon .icon {
  width: 0.9rem !important;
  height: 0.9rem !important;
  stroke-width: 1.5;
  stroke: currentColor !important;
  color: inherit;
}

.pts-sidebar .nav-link-title {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.8rem;
  font-weight: 550;
  letter-spacing: -0.01em;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-sidebar .nav-link:hover,
.pts-sidebar .nav-link:focus-visible,
.pts-sidebar .pts-sidebar-branch-toggle:hover,
.pts-sidebar .pts-sidebar-branch-toggle:focus-visible {
  color: #fff !important;
  background: color-mix(in srgb, var(--tblr-primary) 14%, transparent);
  border-color: color-mix(in srgb, var(--tblr-primary) 22%, transparent);
}

.pts-sidebar .nav-link:focus-visible,
.pts-sidebar .pts-sidebar-branch-toggle:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--tblr-primary) 55%, transparent);
  outline-offset: -2px;
}

.pts-sidebar .nav-link:hover .nav-link-icon,
.pts-sidebar .nav-link:focus-visible .nav-link-icon,
.pts-sidebar .pts-sidebar-branch-toggle:hover .nav-link-icon,
.pts-sidebar .pts-sidebar-branch-toggle:focus-visible .nav-link-icon {
  color: color-mix(in srgb, var(--tblr-primary) 70%, #fff);
  background: color-mix(in srgb, var(--tblr-primary) 18%, transparent);
  border-color: color-mix(in srgb, var(--tblr-primary) 28%, transparent);
}

.pts-sidebar .nav-link.active,
.pts-sidebar .nav-item.active > .nav-link,
.pts-sidebar .pts-sidebar-branch.active > .pts-sidebar-branch-toggle,
.pts-sidebar .pts-sidebar-branch-toggle.active {
  color: #fff !important;
  background: color-mix(in srgb, var(--tblr-primary) 22%, transparent);
  border-color: color-mix(in srgb, var(--tblr-primary) 34%, transparent);
  box-shadow: inset 3px 0 0 var(--tblr-primary);
}

.pts-sidebar .nav-link.active .nav-link-icon,
.pts-sidebar .nav-item.active > .nav-link .nav-link-icon,
.pts-sidebar .pts-sidebar-branch.active > .pts-sidebar-branch-toggle .nav-link-icon,
.pts-sidebar .pts-sidebar-branch-toggle.active .nav-link-icon {
  color: color-mix(in srgb, var(--tblr-primary) 78%, #fff);
  background: color-mix(in srgb, var(--tblr-primary) 24%, transparent);
  border-color: color-mix(in srgb, var(--tblr-primary) 36%, transparent);
}

.pts-sidebar .pts-sidebar-subnav {
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
  margin: 0.12rem 0 0.22rem;
  padding: 0.12rem 0 0.1rem 0.55rem;
  list-style: none;
  border-left: 1px solid color-mix(in srgb, var(--tblr-primary) 22%, transparent);
  margin-left: 0.85rem;
}

.pts-sidebar .pts-sidebar-subnav .nav-link {
  padding: 0.3rem 0.4rem;
  border-radius: calc(var(--tblr-border-radius) + 0.04rem);
}

.pts-sidebar .pts-sidebar-subnav .nav-link-icon {
  width: 1.28rem;
  height: 1.28rem;
  border-radius: 50%;
}

.pts-sidebar .pts-sidebar-subnav .nav-link-icon .icon {
  width: 0.78rem !important;
  height: 0.78rem !important;
}

.pts-sidebar .pts-sidebar-subnav .nav-link-title {
  font-size: 0.76rem;
  font-weight: 520;
}

.pts-sidebar .pts-sidebar-subnav .nav-link.active {
  box-shadow: none;
  background: color-mix(in srgb, var(--tblr-primary) 26%, transparent);
}

.pts-sidebar .pts-sidebar-subnav .pts-sidebar-branch-nested {
  list-style: none;
}

.pts-sidebar .pts-sidebar-subnav .pts-sidebar-branch-nested > .pts-sidebar-branch-toggle {
  padding: 0.3rem 0.4rem;
}

.pts-sidebar .pts-sidebar-subnav .pts-sidebar-subnav {
  margin-left: 0.65rem;
  padding-left: 0.5rem;
}

.pts-nav-dropdown-group-label {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.35rem;
}

.pts-nav-dropdown-nested {
  padding-left: 0.65rem;
}

.pts-topbar .pts-nav-dropdown-toggle,
.pts-topbar .dropdown-menu .pts-nav-dropdown-toggle {
  display: flex !important;
  align-items: center;
  gap: 0.45rem;
  width: 100%;
  font-weight: 600;
  cursor: pointer;
}

.pts-topbar .pts-nav-dropdown-toggle-title {
  flex: 1 1 auto;
  min-width: 0;
  text-align: start;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pts-topbar .pts-nav-dropdown-toggle .pts-nav-caret {
  margin-left: auto;
}

.pts-topbar .pts-nav-dropdown-group.is-open > .pts-nav-dropdown-toggle .pts-nav-caret {
  transform: rotate(180deg);
}

.pts-topbar .pts-nav-dropdown-children {
  padding: 0.1rem 0 0.25rem;
}

.pts-topbar .pts-nav-dropdown-children .pts-nav-dropdown-group {
  margin-top: 0.1rem;
}

.pts-topbar .pts-nav-dropdown-toggle-nested {
  padding-left: 1.1rem !important;
  font-weight: 550;
}

.pts-topbar .pts-nav-dropdown-children .pts-nav-dropdown-nested {
  padding-left: 0.85rem;
}

.pts-topbar .pts-nav-dropdown-children .pts-nav-dropdown-nested .dropdown-item {
  padding-left: 1.35rem;
}

/* Combo / horizontal / overlap top header — shared chrome height + line */
.pts-chrome-header.navbar {
  flex: 0 0 var(--pts-chrome-top-height);
  box-sizing: border-box;
  height: var(--pts-chrome-top-height);
  min-height: var(--pts-chrome-top-height);
  max-height: var(--pts-chrome-top-height);
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin: 0;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--tblr-primary) 6%, var(--tblr-bg-surface)) 0%, var(--tblr-bg-surface) 100%);
  border-bottom: 1px solid color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-border-color));
  box-shadow: 0 10px 24px -22px color-mix(in srgb, var(--tblr-primary) 45%, transparent);
}

.pts-chrome-header .container-xl {
  height: 100%;
  min-height: 0;
  align-items: center;
  padding-top: 0;
  padding-bottom: 0;
}

.pts-chrome-header .navbar-brand {
  display: inline-flex;
  align-items: center;
  line-height: 1;
}

.pts-chrome-header .pts-header-tools {
  height: 100%;
}

.pts-overlap-header.navbar,
.pts-chrome-header.navbar-overlap {
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--tblr-primary) 22%, #182433) 0%, #182433 100%);
  border-bottom-color: color-mix(in srgb, #fff 10%, transparent);
  box-shadow: 0 12px 28px -18px rgba(0, 0, 0, 0.55);
  color: #fff;
}

.pts-overlap-header .pts-brand-wordmark-pts,
.pts-overlap-header .pts-footer-brand-pts {
  color: color-mix(in srgb, #fff 92%, var(--tblr-primary) 8%);
}

.pts-overlap-header .pts-brand-wordmark-flex {
  color: color-mix(in srgb, var(--tblr-primary) 72%, #fff);
}

/* Combo top header next to sidebar — alias kept for existing selectors */
.pts-combo-header.navbar {
  /* inherits .pts-chrome-header */
}

@media (max-width: 991.98px) {
  .page:has(> .pts-sidebar) {
    flex-direction: column !important;
  }

  .page:has(> .pts-sidebar) > .page-wrapper {
    margin-left: 0 !important;
    min-width: 0;
    width: 100%;
  }

  .pts-sidebar.navbar-vertical.navbar-expand-lg,
  .pts-sidebar.navbar-vertical {
    --pts-sidebar-width: 100%;
    position: relative !important;
    flex: 0 0 auto;
    width: 100% !important;
    min-width: 0;
    max-width: none;
    height: auto !important;
    max-height: none;
    overflow: visible;
    background: linear-gradient(180deg, var(--pts-sidebar-surface) 0%, var(--pts-sidebar-bg) 100%);
    box-shadow: none;
    z-index: 1040;
  }

  .pts-sidebar.navbar-vertical::before {
    display: none;
  }

  .pts-sidebar .pts-sidebar-shell {
    position: relative;
    height: auto;
    padding: 0 0.75rem 0.55rem;
    padding-left: max(0.75rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.75rem, env(safe-area-inset-right, 0px));
  }

  .pts-sidebar .pts-sidebar-top {
    --pts-chrome-top-height: 3rem;
    margin-left: calc(-1 * max(0.75rem, env(safe-area-inset-left, 0px)));
    margin-right: calc(-1 * max(0.75rem, env(safe-area-inset-right, 0px)));
    padding-left: max(0.75rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.75rem, env(safe-area-inset-right, 0px));
    border-bottom: 1px solid var(--pts-sidebar-border);
    position: relative;
    z-index: 2;
  }

  .pts-sidebar .pts-sidebar-scrim {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1045;
    border: 0;
    padding: 0;
    margin: 0;
    background: color-mix(in srgb, #000 46%, transparent);
    cursor: pointer;
  }

  .pts-sidebar:has(#pts-sidebar-menu.show) .pts-sidebar-scrim {
    display: block;
  }

  .pts-sidebar #pts-sidebar-menu {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 1050;
    width: min(18.5rem, 88vw);
    max-width: 100%;
    margin: 0 !important;
    padding:
      max(0.85rem, env(safe-area-inset-top, 0px))
      0.85rem
      max(0.85rem, env(safe-area-inset-bottom, 0px))
      max(0.85rem, env(safe-area-inset-left, 0px));
    display: flex !important;
    flex-direction: column;
    background:
      radial-gradient(120% 48% at 0% -8%, color-mix(in srgb, var(--tblr-primary) 28%, transparent), transparent 58%),
      linear-gradient(180deg, var(--pts-sidebar-surface) 0%, var(--pts-sidebar-bg) 100%);
    border-right: 1px solid var(--pts-sidebar-border);
    box-shadow: 16px 0 40px -20px rgba(0, 0, 0, 0.55);
    transform: translateX(-105%);
    visibility: hidden;
    pointer-events: none;
    transition: transform 0.22s ease, visibility 0.22s ease;
  }

  .pts-sidebar #pts-sidebar-menu.show {
    transform: translateX(0);
    visibility: visible;
    pointer-events: auto;
  }

  .pts-sidebar #pts-sidebar-menu.collapsing {
    transition: none;
    height: auto !important;
  }

  .pts-sidebar .pts-sidebar-nav {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    margin-top: 0;
    padding-top: 0.35rem;
    border-top: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    scroll-padding-block: 0.55rem;
  }

  .pts-combo-header.navbar,
  .pts-chrome-header.navbar {
    --pts-chrome-top-height: 3rem;
  }

  .pts-combo-header .container-xl,
  .pts-chrome-header .container-xl {
    padding-left: max(0.85rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.85rem, env(safe-area-inset-right, 0px));
  }
}

@media (min-width: 992px) {
  .pts-sidebar .pts-sidebar-scrim {
    display: none !important;
  }

  .pts-sidebar #pts-sidebar-menu.collapse {
    display: flex !important;
    height: 100%;
    position: static;
    transform: none;
    visibility: visible;
    pointer-events: auto;
    width: auto;
    box-shadow: none;
    border-right: 0;
    padding: 0;
  }

  .pts-sidebar .pts-sidebar-shell {
    height: 100%;
  }
}

/* —— Topbar (horizontal nav) —— */
.pts-topbar-wrap {
  flex: 0 0 auto;
  overflow: visible;
  position: relative;
  z-index: 1040;
}

.pts-topbar.navbar {
  background: color-mix(in srgb, var(--tblr-bg-surface, #fff) 94%, var(--tblr-primary));
  border-bottom: 1px solid color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-border-color));
  box-shadow: 0 8px 22px -20px color-mix(in srgb, var(--tblr-primary) 40%, transparent);
  min-height: 0;
  overflow: visible;
}

.pts-topbar .container-xl {
  overflow: visible;
}

.pts-topbar .navbar-nav {
  gap: 0.15rem;
  padding: 0.35rem 0;
  align-items: center;
}

.pts-topbar .navbar-nav.pts-topbar-nav {
  width: 100%;
  flex-direction: row;
  flex-wrap: nowrap !important;
  align-items: center;
  position: relative;
  overflow: visible;
  white-space: nowrap;
}

.pts-topbar .pts-topbar-nav > .nav-item {
  flex: 0 0 auto;
  white-space: nowrap;
  position: relative;
}

.pts-topbar .pts-topbar-nav > .nav-item > .nav-link {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  white-space: nowrap;
}

.pts-topbar .pts-topbar-nav .nav-link-title {
  white-space: nowrap;
}

.pts-topbar .pts-nav-item-overflow {
  /* Keep natural width measurable; pull out of flex flow so ResizeObserver stays stable. */
  position: absolute !important;
  left: 0;
  top: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: -1;
}

.pts-topbar .pts-nav-home > .nav-link {
  padding-inline: 0.55rem;
}

.pts-topbar .pts-topbar-nav > .nav-item.dropdown > .dropdown-toggle::after,
.pts-topbar .pts-nav-more-toggle.dropdown-toggle::after {
  display: none !important;
}

.pts-topbar .pts-nav-caret {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  margin-left: 0;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 30%, var(--tblr-border-color));
  border-radius: 50%;
  background: color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-bg-surface, #fff));
  color: var(--tblr-icon-color);
  flex: 0 0 auto;
  transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease, transform 0.16s ease;
}

.pts-topbar .pts-nav-caret .icon {
  width: 0.72rem !important;
  height: 0.72rem !important;
  stroke: currentColor !important;
}

.pts-topbar .nav-link:hover .pts-nav-caret,
.pts-topbar .nav-link:focus-visible .pts-nav-caret,
.pts-topbar .nav-item.dropdown.show > .nav-link .pts-nav-caret,
.pts-topbar .nav-item.active > .nav-link .pts-nav-caret {
  border-color: color-mix(in srgb, var(--tblr-primary) 48%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 18%, transparent);
  color: var(--tblr-primary);
}

.pts-topbar .nav-item.dropdown.show > .nav-link .pts-nav-caret {
  transform: rotate(180deg);
}

.pts-topbar .pts-nav-more {
  margin-left: auto;
}

.pts-topbar .pts-nav-more-toggle {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  min-width: 2.2rem;
  min-height: 2.2rem;
  padding: 0 !important;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 28%, var(--tblr-border-color)) !important;
  border-radius: 50%;
  background: color-mix(in srgb, var(--tblr-bg-surface, #fff) 92%, var(--tblr-primary));
  box-shadow: none;
}

.pts-topbar .pts-nav-more-toggle .nav-link-icon {
  margin: 0;
}

.pts-topbar .pts-nav-more-toggle:hover,
.pts-topbar .pts-nav-more-toggle:focus-visible {
  border-color: color-mix(in srgb, var(--tblr-primary) 48%, var(--tblr-border-color)) !important;
  background: color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-bg-surface, #fff));
  color: var(--tblr-primary) !important;
}

.pts-topbar .pts-nav-more.show > .pts-nav-more-toggle,
.pts-topbar .pts-nav-more-toggle.active,
.pts-topbar .pts-nav-more.active > .pts-nav-more-toggle {
  border-color: color-mix(in srgb, var(--tblr-primary) 55%, var(--tblr-border-color)) !important;
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
  color: var(--tblr-primary) !important;
  box-shadow: none;
}

.pts-topbar .pts-nav-more.show > .pts-nav-more-toggle .nav-link-icon {
  transform: rotate(180deg);
}

.pts-topbar .pts-nav-more-menu {
  max-height: min(70vh, 28rem);
  overflow-y: auto;
  min-width: 14rem;
  z-index: 1080;
}

.pts-topbar .pts-nav-more-row {
  touch-action: none;
  cursor: grab;
  user-select: none;
}

.pts-topbar .pts-nav-more-row.pts-row-dragging {
  cursor: grabbing;
  z-index: 2;
}

.pts-topbar .pts-nav-more-row.pts-row-dragging > .dropdown-item,
.pts-topbar .pts-nav-more-row.pts-row-dragging > .pts-nav-dropdown-toggle {
  color: var(--tblr-primary) !important;
  background: var(--tblr-primary-lt) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tblr-primary) 26%, transparent);
}

.pts-topbar .pts-nav-more-row.pts-row-drag-over > .dropdown-item,
.pts-topbar .pts-nav-more-row.pts-row-drag-over > .pts-nav-dropdown-toggle {
  background: color-mix(in srgb, var(--tblr-primary) 8%, var(--tblr-bg-surface)) !important;
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--tblr-primary) 20%, transparent);
}

.pts-topbar .pts-nav-more-menu.pts-nav-list-dragging .pts-nav-more-row:not(.pts-row-dragging) {
  opacity: 0.76;
}

.pts-topbar .pts-nav-more-group + .pts-nav-more-group,
.pts-topbar .pts-nav-more-subgroup {
  margin-top: 0.15rem;
}

.pts-topbar .pts-nav-more-sublabel {
  padding-left: 1.1rem;
  font-size: 0.78rem;
  opacity: 0.85;
}

.pts-topbar .nav-link {
  gap: 0.4rem;
  padding: 0.45rem 0.65rem;
  border-radius: calc(var(--tblr-border-radius) + 0.15rem);
  color: color-mix(in srgb, var(--tblr-body-color) 78%, transparent) !important;
  border: 1px solid transparent;
  transition: color 0.16s ease, background-color 0.16s ease, border-color 0.16s ease;
}

.pts-topbar .nav-link-icon {
  color: var(--tblr-icon-color);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.05rem;
  height: 1.05rem;
  margin: 0 !important;
  flex: 0 0 auto;
}

.pts-topbar .nav-link-icon .icon {
  width: 1.05rem !important;
  height: 1.05rem !important;
  stroke: currentColor !important;
  color: inherit;
}

.pts-topbar .nav-link-title {
  font-size: 0.9rem;
  font-weight: 550;
  letter-spacing: -0.01em;
  line-height: 1.2;
}

.pts-topbar .nav-link:hover,
.pts-topbar .nav-link:focus-visible {
  color: var(--tblr-primary) !important;
  background: color-mix(in srgb, var(--tblr-primary) 8%, transparent);
  border-color: color-mix(in srgb, var(--tblr-primary) 16%, transparent);
}

.pts-topbar .nav-link:hover .nav-link-icon,
.pts-topbar .nav-link:focus-visible .nav-link-icon {
  color: var(--tblr-primary);
}

.pts-topbar .nav-link.active,
.pts-topbar .nav-item.active > .nav-link,
.pts-topbar .nav-item.dropdown.active > .nav-link {
  color: var(--tblr-primary) !important;
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
  border-color: color-mix(in srgb, var(--tblr-primary) 22%, transparent);
  box-shadow: inset 0 -2px 0 var(--tblr-primary);
}

.pts-topbar .nav-link.active .nav-link-icon,
.pts-topbar .nav-item.active > .nav-link .nav-link-icon,
.pts-topbar .nav-item.dropdown.active > .nav-link .nav-link-icon {
  color: var(--tblr-primary);
}

.pts-topbar .dropdown-menu {
  margin-top: 0.35rem !important;
  padding: 0.35rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 14%, var(--tblr-border-color));
  border-radius: calc(var(--tblr-border-radius) + 0.15rem);
  background: var(--tblr-bg-surface, #fff);
  box-shadow: 0 14px 34px -22px color-mix(in srgb, var(--tblr-primary) 45%, #000);
  z-index: 1080;
}

.pts-topbar .dropdown-item {
  border-radius: var(--tblr-border-radius);
  color: var(--tblr-body-color);
}

.pts-topbar .dropdown-item:hover,
.pts-topbar .dropdown-item:focus,
.pts-topbar .dropdown-item.active {
  color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 10%, transparent);
}

.pts-topbar .dropdown-item-icon {
  color: var(--tblr-icon-color);
}

.pts-topbar .dropdown-item:hover .dropdown-item-icon,
.pts-topbar .dropdown-item.active .dropdown-item-icon {
  color: var(--tblr-primary);
}

/* Overlap topbar on dark band — continuous with pts-overlap-header */
.pts-topbar-wrap-overlap .pts-topbar,
.pts-topbar.pts-topbar-overlap,
.layout-overlap .pts-topbar {
  background: color-mix(in srgb, #182433 94%, var(--tblr-primary));
  border-bottom-color: color-mix(in srgb, #fff 10%, transparent);
  box-shadow: 0 10px 24px -20px rgba(0, 0, 0, 0.45);
  --tblr-icon-color: color-mix(in srgb, #fff 58%, transparent);
}

.pts-topbar.pts-topbar-overlap .nav-link,
.layout-overlap .pts-topbar .nav-link {
  color: color-mix(in srgb, #fff 78%, transparent) !important;
}

.pts-topbar.pts-topbar-overlap .nav-link:hover,
.pts-topbar.pts-topbar-overlap .nav-link:focus-visible,
.pts-topbar.pts-topbar-overlap .nav-link.active,
.pts-topbar.pts-topbar-overlap .nav-item.active > .nav-link,
.layout-overlap .pts-topbar .nav-link:hover,
.layout-overlap .pts-topbar .nav-link.active,
.layout-overlap .pts-topbar .nav-item.active > .nav-link {
  color: #fff !important;
  background: color-mix(in srgb, var(--tblr-primary) 28%, transparent);
  border-color: color-mix(in srgb, var(--tblr-primary) 36%, transparent);
  box-shadow: none;
}

.pts-topbar.pts-topbar-overlap .nav-link:hover .nav-link-icon,
.pts-topbar.pts-topbar-overlap .nav-link.active .nav-link-icon,
.layout-overlap .pts-topbar .nav-link:hover .nav-link-icon,
.layout-overlap .pts-topbar .nav-link.active .nav-link-icon {
  color: color-mix(in srgb, var(--tblr-primary) 70%, #fff);
}

.pts-topbar.pts-topbar-overlap .pts-nav-caret,
.layout-overlap .pts-topbar .pts-nav-caret {
  border-color: color-mix(in srgb, #fff 28%, transparent);
  background: color-mix(in srgb, #fff 10%, transparent);
  color: color-mix(in srgb, #fff 82%, transparent);
}

.pts-topbar.pts-topbar-overlap .nav-link:hover .pts-nav-caret,
.pts-topbar.pts-topbar-overlap .nav-item.dropdown.show > .nav-link .pts-nav-caret,
.layout-overlap .pts-topbar .nav-link:hover .pts-nav-caret,
.layout-overlap .pts-topbar .nav-item.dropdown.show > .nav-link .pts-nav-caret {
  border-color: color-mix(in srgb, #fff 48%, transparent);
  background: color-mix(in srgb, var(--tblr-primary) 28%, transparent);
  color: #fff;
}

.pts-topbar.pts-topbar-overlap .pts-nav-more-toggle,
.layout-overlap .pts-topbar .pts-nav-more-toggle {
  border-color: color-mix(in srgb, #fff 28%, transparent) !important;
  background: color-mix(in srgb, #fff 8%, transparent);
  color: color-mix(in srgb, #fff 88%, transparent) !important;
}

.pts-topbar.pts-topbar-overlap .pts-nav-more-toggle:hover,
.pts-topbar.pts-topbar-overlap .pts-nav-more-toggle:focus-visible,
.pts-topbar.pts-topbar-overlap .pts-nav-more.show > .pts-nav-more-toggle,
.pts-topbar.pts-topbar-overlap .pts-nav-more-toggle.active,
.layout-overlap .pts-topbar .pts-nav-more-toggle:hover,
.layout-overlap .pts-topbar .pts-nav-more.show > .pts-nav-more-toggle {
  border-color: color-mix(in srgb, #fff 48%, transparent) !important;
  background: color-mix(in srgb, var(--tblr-primary) 28%, transparent);
  color: #fff !important;
  box-shadow: none;
}

/* —— Footer (quiet chrome) —— */
.pts-footer.footer {
  flex: 0 0 auto;
  margin-top: 0;
  position: relative;
  z-index: 20;
  width: 100%;
  background: color-mix(in srgb, var(--tblr-bg-surface, #fff) 92%, var(--tblr-body-bg));
  border-top: 1px solid color-mix(in srgb, var(--tblr-border-color) 70%, transparent);
  padding: 0.45rem 0;
  color: color-mix(in srgb, var(--tblr-secondary) 78%, transparent);
}

.pts-footer-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.pts-footer-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 0.55rem;
}

.pts-footer-side {
  display: flex;
  align-items: center;
  min-width: 0;
}

.pts-footer-start {
  justify-content: flex-start;
}

.pts-footer-end {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: flex-end;
}

.pts-footer-center {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.3rem;
  justify-self: center;
}

.pts-footer-lock {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  padding: 0.12rem 0.38rem;
  border-radius: calc(var(--tblr-border-radius) * 0.9);
  font-size: 0.66rem;
  font-weight: 550;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  border: 1px solid transparent;
  background: transparent;
  color: color-mix(in srgb, var(--tblr-secondary) 62%, transparent);
  user-select: none;
  transition: color 0.15s ease, opacity 0.15s ease;
}

.pts-footer-lock-dot {
  width: 0.32rem;
  height: 0.32rem;
  border-radius: 999px;
  background: currentColor;
  opacity: 0.45;
}

.pts-footer-lock-label {
  font-variant-numeric: tabular-nums;
}

.pts-footer-lock-state {
  display: none;
}

.pts-footer-lock.is-off {
  opacity: 0.72;
}

.pts-footer-lock.is-on {
  color: color-mix(in srgb, var(--tblr-body-color) 55%, var(--tblr-secondary));
  opacity: 1;
}

.pts-footer-lock.is-on .pts-footer-lock-dot {
  opacity: 0.85;
  background: var(--tblr-primary);
  box-shadow: none;
}

.pts-footer-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.1rem 0.2rem;
  border-radius: 0;
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
  font-weight: 500;
  color: color-mix(in srgb, var(--tblr-secondary) 82%, transparent);
  background: transparent;
  border: 0;
}

.pts-footer-chip .icon {
  width: 0.8rem !important;
  height: 0.8rem !important;
  color: color-mix(in srgb, var(--tblr-primary) 35%, var(--tblr-secondary));
  stroke: currentColor !important;
  opacity: 0.9;
}

.pts-footer-brand {
  display: inline-flex;
  align-items: baseline;
  gap: 0.12rem;
  font-size: 0.72rem;
  font-weight: 550;
  letter-spacing: -0.01em;
  user-select: none;
  opacity: 0.78;
}

.pts-footer-brand-pts {
  color: color-mix(in srgb, var(--tblr-body-color) 58%, transparent);
}

.pts-footer-brand-flex {
  color: color-mix(in srgb, var(--tblr-primary) 55%, var(--tblr-secondary));
}

.pts-footer-brand-sep {
  margin: 0 0.2rem;
  color: color-mix(in srgb, var(--tblr-secondary) 55%, transparent);
  font-weight: 500;
}

.pts-footer-brand-app,
.pts-footer-brand-user {
  color: color-mix(in srgb, var(--tblr-secondary) 75%, transparent);
  font-weight: 500;
  max-width: 12rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-footer-cache {
  padding: 0.12rem 0.42rem;
  border-radius: calc(var(--tblr-border-radius) * 0.9);
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 70%, transparent);
  background: color-mix(in srgb, var(--tblr-primary) 7%, transparent);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
  font-weight: 550;
  font-size: 0.66rem;
  color: color-mix(in srgb, var(--tblr-body-color) 58%, var(--tblr-secondary));
}

@media (max-width: 767.98px) {
  .pts-footer-row {
    grid-template-columns: 1fr auto;
    justify-items: stretch;
    gap: 0.25rem 0.75rem;
  }

  .pts-footer-center {
    display: none;
  }

  .pts-footer-start,
  .pts-footer-end {
    justify-content: flex-start;
  }

  .pts-footer-end {
    justify-content: flex-end;
  }

  .pts-footer-brand-user {
    max-width: 7rem;
  }
}

@media (max-width: 575.98px) {
  .pts-footer.footer {
    padding-top: 0.35rem;
    padding-bottom: max(0.35rem, env(safe-area-inset-bottom, 0px));
  }

  .pts-footer-row {
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }

  .pts-footer-start,
  .pts-footer-end {
    justify-content: center;
  }

  .pts-footer-chip span:not(.icon) {
    font-size: 0.68rem;
  }
}

[data-bs-theme="dark"] .pts-footer.footer {
  background: color-mix(in srgb, var(--tblr-bg-surface) 88%, transparent);
  border-top-color: color-mix(in srgb, var(--tblr-border-color) 55%, transparent);
}

/* —— Theme Settings sheet (right vertical panel) —— */
.pts-theme-backdrop {
  background: transparent !important;
  opacity: 1 !important;
  backdrop-filter: none !important;
}

.pts-theme-sheet-backdrop {
  background: color-mix(in srgb, #000 28%, transparent) !important;
  opacity: 1 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  pointer-events: auto !important;
}

@media (max-width: 767.98px) {
  .pts-theme-sheet-backdrop {
    background: color-mix(in srgb, #000 42%, transparent) !important;
  }
}

.modal.pts-theme-sheet {
  --pts-theme-inset: 1.35rem;
  padding: 0 !important;
  overflow: hidden;
  background: transparent;
  pointer-events: auto;
}

.modal.pts-theme-sheet .modal-dialog.pts-theme-dialog {
  pointer-events: auto;
  position: fixed;
  top: var(--pts-theme-inset);
  right: var(--pts-theme-inset);
  bottom: var(--pts-theme-inset);
  left: auto;
  margin: 0;
  width: min(24.5rem, calc(100vw - (var(--pts-theme-inset) * 2)));
  max-width: none;
  height: auto;
  max-height: none;
  transform: none;
  display: flex;
  align-items: stretch;
}

.modal.pts-theme-sheet .pts-theme-dialog .modal-content {
  height: 100%;
  max-height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 14%, var(--tblr-border-color));
  border-radius: calc(var(--tblr-border-radius) * 1.75);
  box-shadow:
    0 24px 64px -28px color-mix(in srgb, var(--tblr-body-color) 42%, transparent),
    0 0 0 1px color-mix(in srgb, var(--tblr-primary) 8%, transparent);
  background:
    linear-gradient(
      165deg,
      color-mix(in srgb, var(--tblr-primary) 6%, var(--tblr-bg-surface)) 0%,
      var(--tblr-bg-surface) 42%
    );
}

.modal.pts-theme-sheet .pts-theme-header {
  flex: 0 0 auto;
  padding: 1.05rem 1.15rem 0.95rem;
  border-bottom: 1px solid color-mix(in srgb, var(--tblr-border-color) 88%, var(--tblr-primary));
  align-items: flex-start;
}

.modal.pts-theme-sheet .pts-theme-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 0.85rem 1.15rem 1.15rem;
  display: flex;
  flex-direction: column;
  gap: 0.95rem;
}

.modal.pts-theme-sheet .pts-theme-footer {
  flex: 0 0 auto;
  padding: 0.85rem 1.15rem 1.05rem;
  border-top: 1px solid var(--tblr-border-color);
}

.modal.pts-theme-sheet .pts-theme-footer .btn-outline-secondary {
  border-color: color-mix(in srgb, var(--tblr-primary) 18%, var(--tblr-border-color));
  color: var(--tblr-body-color);
}

.modal.pts-theme-sheet .pts-theme-footer .btn-outline-secondary:hover,
.modal.pts-theme-sheet .pts-theme-footer .btn-outline-secondary:focus-visible {
  border-color: color-mix(in srgb, var(--tblr-primary) 40%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 8%, transparent);
  color: var(--tblr-primary);
}

.pts-theme-section {
  padding: 0.85rem 0.9rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 90%, transparent);
  border-radius: calc(var(--tblr-border-radius) * 1.35);
  background: color-mix(in srgb, var(--tblr-bg-surface) 88%, var(--tblr-bg-surface-secondary));
}

.pts-theme-section-head {
  margin-bottom: 0.7rem;
}

.pts-theme-section-head .form-label {
  font-weight: 650;
  letter-spacing: -0.01em;
}

.pts-theme-section .form-selectgroup:not(.form-selectgroup-boxes) {
  flex-wrap: wrap;
}

.pts-theme-section .form-selectgroup-boxes .form-selectgroup-label {
  border-radius: calc(var(--tblr-border-radius) * 1.1);
}

.pts-theme-layout-group .form-selectgroup-item {
  margin-bottom: 0.45rem;
}

.pts-theme-layout-group .form-selectgroup-item:last-child {
  margin-bottom: 0;
}

.pts-theme-layout-label {
  display: flex !important;
  align-items: center;
  gap: 0.85rem;
  padding: 0.7rem 0.85rem !important;
}

.pts-theme-layout-copy {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.pts-theme-layout-title {
  font-size: 0.9rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  color: var(--tblr-body-color);
}

.pts-theme-layout-hint {
  font-size: 0.72rem;
  line-height: 1.35;
  color: color-mix(in srgb, var(--tblr-secondary, #667382) 92%, transparent);
}

.pts-layout-preview {
  position: relative;
  flex: 0 0 auto;
  width: 3.6rem;
  height: 2.55rem;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  padding: 0.22rem;
  border-radius: 0.4rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 16%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, #f1f5f9) 80%, var(--tblr-primary) 6%);
  box-sizing: border-box;
  overflow: hidden;
}

.pts-layout-preview.is-fluid {
  border-style: dashed;
}

.pts-layout-preview-combo {
  flex-direction: row;
  gap: 0.14rem;
}

.pts-layout-preview-side {
  width: 0.72rem;
  flex: 0 0 auto;
  border-radius: 0.18rem;
  background: color-mix(in srgb, var(--tblr-primary) 55%, #182433);
}

.pts-layout-preview-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
}

.pts-layout-preview-bar {
  height: 0.38rem;
  border-radius: 0.14rem;
  background: color-mix(in srgb, var(--tblr-primary) 42%, var(--tblr-border-color));
}

.pts-layout-preview-overlap .pts-layout-preview-bar {
  background: color-mix(in srgb, var(--tblr-primary) 35%, #182433);
}

.pts-layout-preview-nav {
  height: 0.28rem;
  border-radius: 0.12rem;
  background: color-mix(in srgb, var(--tblr-primary) 22%, var(--tblr-border-color));
}

.pts-layout-preview-overlap .pts-layout-preview-nav {
  background: color-mix(in srgb, var(--tblr-primary) 28%, #243447);
}

.pts-layout-preview-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  padding: 0.08rem;
  border-radius: 0.14rem;
  background: color-mix(in srgb, var(--tblr-bg-surface, #fff) 88%, transparent);
}

.pts-layout-preview-overlap .pts-layout-preview-body {
  margin-top: -0.08rem;
  box-shadow: 0 -0.2rem 0 color-mix(in srgb, var(--tblr-primary) 12%, transparent);
}

.pts-layout-preview-block {
  height: 0.28rem;
  border-radius: 0.1rem;
  background: color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-border-color));
}

.pts-layout-preview-block + .pts-layout-preview-block {
  width: 72%;
}

.form-selectgroup-input:checked + .pts-theme-layout-label .pts-layout-preview {
  border-color: color-mix(in srgb, var(--tblr-primary) 45%, var(--tblr-border-color));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--tblr-primary) 25%, transparent);
}

.pts-theme-custom-swatch.is-active .form-colorinput-color {
  box-shadow: 0 0 0 2px var(--tblr-body-bg), 0 0 0 4px var(--tblr-primary);
}

.pts-theme-custom-picker {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-left: 0.15rem;
  padding: 0.28rem 0.55rem;
  border-radius: calc(var(--tblr-border-radius) + 0.15rem);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 18%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 6%, var(--tblr-bg-surface));
  color: var(--tblr-body-color);
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  user-select: none;
}

.pts-theme-custom-picker input[type="color"] {
  width: 1.35rem;
  height: 1.35rem;
  padding: 0;
  border: 1px solid var(--tblr-border-color);
  border-radius: 0.35rem;
  background: transparent;
  cursor: pointer;
}

.pts-theme-custom-picker input[type="color"]::-webkit-color-swatch-wrapper {
  padding: 0;
}

.pts-theme-custom-picker input[type="color"]::-webkit-color-swatch {
  border: none;
  border-radius: 0.25rem;
}

@media (max-width: 767.98px) {
  .modal.pts-theme-sheet {
    --pts-theme-inset: 0;
    pointer-events: auto;
  }

  .modal.pts-theme-sheet .modal-dialog.pts-theme-dialog {
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-height: min(92dvh, 100%);
    border-radius: 0;
  }

  .modal.pts-theme-sheet .pts-theme-dialog .modal-content {
    border-radius: calc(var(--tblr-border-radius) * 1.5) calc(var(--tblr-border-radius) * 1.5) 0 0;
    max-height: min(92dvh, 100%);
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  .modal.pts-theme-sheet .pts-theme-body {
    padding-bottom: 1.25rem;
  }

  .pts-theme-section .form-selectgroup-boxes .form-selectgroup-label {
    padding: 0.75rem !important;
  }
}

/* —— Login (fixed look; not bound to app theme) —— */
.pts-login {
  --pts-login-accent: #0e4d8b;
  --pts-login-accent-soft: #3d7ab0;
  --pts-login-ink: #182433;
  --pts-login-muted: #667382;
  --pts-login-line: #dce3ec;
  --pts-login-surface: #ffffff;
  --pts-login-panel: #f5f8fc;
  --pts-login-radius: 0.5rem;
  --tblr-primary: #0e4d8b;
  --tblr-primary-rgb: 14, 77, 139;
  --tblr-primary-fg: #fff;
  --tblr-body-color: #182433;
  --tblr-heading-color: #182433;
  --tblr-secondary: #667382;
  --tblr-border-color: #dce3ec;
  --tblr-bg-surface: #ffffff;
  --tblr-body-bg: #f5f8fc;
  --tblr-border-radius: 0.5rem;
  color-scheme: light;
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(min(22rem, 100%), 0.88fr);
  min-height: 100%;
  min-height: 100dvh;
  height: auto;
  background: var(--pts-login-panel);
  color: var(--pts-login-ink);
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  font-family: "Inter Var", -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI, Roboto, Helvetica Neue, sans-serif;
}

.pts-login-stage {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(1.35rem, 3vw, 2.5rem);
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  background:
    radial-gradient(120% 80% at 50% -10%, color-mix(in srgb, var(--pts-login-accent-soft) 22%, transparent), transparent 55%),
    radial-gradient(70% 50% at 50% 100%, color-mix(in srgb, #0b3a66 35%, transparent), transparent 60%),
    linear-gradient(160deg, #070b14 0%, #0d1624 42%, #0a1220 100%);
}

.pts-login-stage-ambient {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

.pts-login-stage-mesh {
  position: absolute;
  inset: -10%;
  background:
    radial-gradient(circle at 18% 22%, color-mix(in srgb, var(--pts-login-accent) 28%, transparent), transparent 28%),
    radial-gradient(circle at 82% 18%, color-mix(in srgb, #5ea0d4 18%, transparent), transparent 26%),
    radial-gradient(circle at 70% 78%, color-mix(in srgb, var(--pts-login-accent) 20%, transparent), transparent 30%),
    radial-gradient(circle at 28% 72%, color-mix(in srgb, #1a6fad 16%, transparent), transparent 28%);
  filter: blur(8px);
  opacity: 0.95;
  animation: pts-login-mesh-drift 18s ease-in-out infinite alternate;
}

.pts-login-stage-beam {
  position: absolute;
  width: 42%;
  height: 140%;
  top: -20%;
  background: linear-gradient(
    180deg,
    transparent 0%,
    color-mix(in srgb, #fff 5%, transparent) 42%,
    transparent 78%
  );
  transform: rotate(18deg);
  opacity: 0.35;
  filter: blur(2px);
}

.pts-login-stage-beam--a {
  left: 8%;
  animation: pts-login-beam-drift 16s ease-in-out infinite alternate;
}

.pts-login-stage-beam--b {
  right: 4%;
  transform: rotate(-14deg);
  opacity: 0.22;
  animation: pts-login-beam-drift 20s ease-in-out infinite alternate-reverse;
}

.pts-login-stage-noise {
  position: absolute;
  inset: 0;
  opacity: 0.045;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}

.pts-login-stage-frame {
  position: relative;
  z-index: 2;
  width: min(100%, 46rem);
  aspect-ratio: 1 / 1.05;
  max-height: min(90dvh, 44rem);
}

.pts-login-stage-radar {
  position: absolute;
  inset: 12%;
  z-index: 0;
  pointer-events: none;
  border-radius: 50%;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--pts-login-accent) 18%, transparent) 0%, transparent 62%),
    radial-gradient(circle at 50% 50%, color-mix(in srgb, #031018 55%, transparent) 48%, transparent 72%);
  border: 1px solid color-mix(in srgb, #fff 10%, transparent);
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb, var(--pts-login-accent) 14%, transparent),
    0 0 50px -18px color-mix(in srgb, var(--pts-login-accent) 40%, transparent);
}

.pts-login-stage-radar-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, #7ec2f0 18%, transparent);
}

.pts-login-stage-radar-ring--mid {
  inset: 16%;
  opacity: 0.85;
}

.pts-login-stage-radar-ring--inner {
  inset: 32%;
  opacity: 0.7;
  border-style: dashed;
}

.pts-login-stage-radar-cross {
  position: absolute;
  background: color-mix(in srgb, #7ec2f0 14%, transparent);
}

.pts-login-stage-radar-cross--h {
  left: 6%;
  right: 6%;
  top: 50%;
  height: 1px;
  transform: translateY(-50%);
}

.pts-login-stage-radar-cross--v {
  top: 6%;
  bottom: 6%;
  left: 50%;
  width: 1px;
  transform: translateX(-50%);
}

.pts-login-stage-radar-sweep {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    color-mix(in srgb, #9fd0f5 34%, transparent) 0deg,
    color-mix(in srgb, #9fd0f5 8%, transparent) 28deg,
    transparent 55deg,
    transparent 360deg
  );
  animation: pts-login-radar-sweep 4.8s linear infinite;
  mix-blend-mode: screen;
  opacity: 0.7;
}

.pts-login-stage-radar-map {
  position: absolute;
  left: 50%;
  top: 46%;
  width: 72%;
  height: auto;
  transform: translate(-50%, -50%);
  opacity: 0.55;
}

.pts-login-stage-radar-land {
  fill: color-mix(in srgb, var(--pts-login-accent-soft) 28%, transparent);
  stroke: color-mix(in srgb, #b7dbf7 45%, transparent);
  stroke-width: 1.2;
}

.pts-login-stage-radar-land--isles {
  opacity: 0.9;
}

.pts-login-stage-radar-pins {
  position: absolute;
  inset: 0;
}

.pts-login-stage-radar-pin {
  position: absolute;
  width: 0;
  height: 0;
  transform: translate(-50%, -50%);
}

.pts-login-stage-radar-pin-core {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0.38rem;
  height: 0.38rem;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: #dff0ff;
  box-shadow: 0 0 10px color-mix(in srgb, #9fd0f5 70%, transparent);
  z-index: 2;
}

.pts-login-stage-radar-pin-pulse {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0.9rem;
  height: 0.9rem;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  border: 1px solid color-mix(in srgb, #9fd0f5 55%, transparent);
  animation: pts-login-radar-ping 2.4s ease-out infinite;
}

.pts-login-stage-radar-pin-label {
  position: absolute;
  left: 50%;
  top: calc(100% + 0.2rem);
  transform: translateX(-50%);
  font-size: 0.52rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: color-mix(in srgb, #dff0ff 78%, transparent);
  text-shadow: 0 1px 8px color-mix(in srgb, #000 55%, transparent);
  opacity: 0.85;
}

.pts-login-stage-radar-caption {
  position: absolute;
  left: 50%;
  bottom: 7%;
  transform: translateX(-50%);
  margin: 0;
  width: min(86%, 14rem);
  text-align: center;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: color-mix(in srgb, #dff0ff 72%, transparent);
  z-index: 3;
}

@keyframes pts-login-radar-sweep {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes pts-login-radar-ping {
  0% { transform: translate(-50%, -50%) scale(0.55); opacity: 0.9; }
  100% { transform: translate(-50%, -50%) scale(2.2); opacity: 0; }
}

.pts-login-stage-brand {
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
  text-align: center;
  pointer-events: none;
  z-index: 3;
}

.pts-login-stage-brand-halo {
  position: absolute;
  width: clamp(10rem, 24vw, 13.5rem);
  height: clamp(10rem, 24vw, 13.5rem);
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 45%, color-mix(in srgb, #fff 16%, transparent), transparent 58%),
    radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--pts-login-accent) 34%, transparent), transparent 70%);
  filter: blur(2px);
  animation: pts-login-hub-pulse 5.5s ease-in-out infinite;
}

.pts-login-stage-brand-core {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  gap: 0.55rem;
  padding: 1.05rem 1.35rem 0.95rem;
  border-radius: 1.2rem;
  border: 1px solid color-mix(in srgb, #fff 14%, transparent);
  background:
    linear-gradient(160deg, color-mix(in srgb, #0b1626 72%, transparent), color-mix(in srgb, #0a1422 55%, transparent));
  backdrop-filter: blur(14px) saturate(1.15);
  box-shadow:
    0 24px 60px -28px color-mix(in srgb, #000 75%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 14%, transparent);
  animation: pts-login-copy-in 0.75s ease-out both;
}

.pts-login-stage .pts-brand-wordmark {
  font-size: clamp(2.35rem, 5.2vw, 3.25rem);
  font-family: inherit;
  letter-spacing: -0.045em;
  line-height: 1;
}

.pts-login-stage .pts-brand-wordmark-pts {
  color: #f7fbff;
}

.pts-login-stage .pts-brand-wordmark-flex {
  background: linear-gradient(120deg, #8ec4ef 0%, var(--pts-login-accent-soft) 55%, #6aa8d8 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.pts-login-stage-kicker {
  margin: 0;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: color-mix(in srgb, #fff 72%, var(--pts-login-accent-soft));
  background: color-mix(in srgb, #fff 8%, transparent);
  border: 1px solid color-mix(in srgb, #fff 12%, transparent);
}

.pts-login-stage-feature {
  --pts-login-feature-delay: 0s;
  position: absolute;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.65rem;
  align-items: flex-start;
  width: min(33%, 12.75rem);
  padding: 0.78rem 0.82rem;
  border-radius: 1rem;
  border: 1px solid color-mix(in srgb, #fff 12%, transparent);
  background:
    linear-gradient(155deg, color-mix(in srgb, #fff 11%, transparent), color-mix(in srgb, #fff 3.5%, transparent));
  backdrop-filter: blur(16px) saturate(1.15);
  box-shadow:
    0 18px 42px -30px color-mix(in srgb, #000 80%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 14%, transparent);
  z-index: 1;
  transition: transform 0.35s ease, border-color 0.35s ease, background 0.35s ease;
  animation: pts-login-feature-in 0.7s ease-out both;
  animation-delay: var(--pts-login-feature-delay);
}

.pts-login-stage-feature:hover {
  transform: translateY(-3px);
  border-color: color-mix(in srgb, #fff 22%, transparent);
  background:
    linear-gradient(155deg, color-mix(in srgb, #fff 15%, transparent), color-mix(in srgb, #fff 5%, transparent));
}

.pts-login-stage-feature--tl {
  top: 0;
  left: 0;
}

.pts-login-stage-feature--tc {
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}

.pts-login-stage-feature--tc:hover {
  transform: translateX(-50%) translateY(-3px);
}

.pts-login-stage-feature--tr {
  top: 0;
  right: 0;
}

.pts-login-stage-feature--ml {
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.pts-login-stage-feature--ml:hover {
  transform: translateY(calc(-50% - 3px));
}

.pts-login-stage-feature--mr {
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}

.pts-login-stage-feature--mr:hover {
  transform: translateY(calc(-50% - 3px));
}

.pts-login-stage-feature--bl {
  bottom: 0;
  left: 0;
}

.pts-login-stage-feature--bc {
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

.pts-login-stage-feature--bc:hover {
  transform: translateX(-50%) translateY(-3px);
}

.pts-login-stage-feature--br {
  bottom: 0;
  right: 0;
}

.pts-login-stage-feature-icon {
  display: grid;
  place-items: center;
  width: 2.05rem;
  height: 2.05rem;
  border-radius: 0.75rem;
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--pts-login-accent-soft) 42%, transparent), color-mix(in srgb, var(--pts-login-accent) 18%, transparent));
  color: #eef6ff;
  border: 1px solid color-mix(in srgb, #fff 16%, transparent);
  box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 20%, transparent);
}

.pts-login-stage-feature-icon .icon {
  width: 1rem !important;
  height: 1rem !important;
  stroke-width: 1.7;
}

.pts-login-stage-feature-body {
  display: grid;
  gap: 0.18rem;
  min-width: 0;
}

.pts-login-stage-feature-title {
  font-size: 0.8rem;
  font-weight: 650;
  letter-spacing: -0.015em;
  color: #f5f9ff;
}

.pts-login-stage-feature-text {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 0.68rem;
  line-height: 1.35;
  color: color-mix(in srgb, #fff 55%, transparent);
}

@keyframes pts-login-mesh-drift {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to { transform: translate3d(1.5%, -2%, 0) scale(1.04); }
}

@keyframes pts-login-beam-drift {
  from { opacity: 0.18; }
  to { opacity: 0.38; }
}

@keyframes pts-login-feature-in {
  from { opacity: 0; filter: blur(4px); }
  to { opacity: 1; filter: blur(0); }
}

@media (max-width: 1199.98px) {
  .pts-login-stage-frame {
    aspect-ratio: auto;
    max-height: none;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
    align-content: center;
  }

  .pts-login-stage-orbit,
  .pts-login-stage-orbit--soft,
  .pts-login-stage-brand-halo {
    display: none;
  }

  .pts-login-stage-radar {
    position: relative;
    inset: auto;
    width: min(100%, 18rem);
    aspect-ratio: 1;
    margin: 0 auto 0.55rem;
    grid-column: 1 / -1;
    order: -1;
    border-radius: 50%;
  }

  .pts-login-stage-radar-caption {
    bottom: 8%;
    font-size: 0.58rem;
  }

  .pts-login-stage-brand {
    position: relative;
    inset: auto;
    transform: none;
    grid-column: 1 / -1;
    order: -1;
    margin-bottom: 0.2rem;
  }

  .pts-login-stage-brand-core {
    width: min(100%, 20rem);
  }

  .pts-login-stage-feature {
    position: relative;
    inset: auto;
    width: auto;
    transform: none;
  }

  .pts-login-stage-feature:hover,
  .pts-login-stage-feature--tc:hover,
  .pts-login-stage-feature--ml:hover,
  .pts-login-stage-feature--mr:hover,
  .pts-login-stage-feature--bc:hover {
    transform: translateY(-2px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .pts-login-stage-mesh,
  .pts-login-stage-beam,
  .pts-login-stage-orbit,
  .pts-login-stage-orbit--soft,
  .pts-login-stage-brand-halo,
  .pts-login-stage-brand-core,
  .pts-login-stage-feature,
  .pts-login-stage-radar-sweep,
  .pts-login-stage-radar-pin-pulse {
    animation: none !important;
  }
}

@keyframes pts-login-glow-drift {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to { transform: translate3d(-3%, -4%, 0) scale(1.06); }
}

@keyframes pts-login-orbit-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes pts-login-dash {
  to { stroke-dashoffset: -160; }
}

@keyframes pts-login-hub-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.04); opacity: 0.92; }
}

@keyframes pts-login-node-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

@keyframes pts-login-copy-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .pts-login-stage-copy,
  .pts-login-panel-glow--a,
  .pts-login-panel-glow--b,
  .pts-login-panel-orbit,
  .pts-login-panel-orbit--inner,
  .pts-login-panel-links path,
  .pts-login-panel-hub-ring,
  .pts-login-panel-node {
    animation: none !important;
  }
}

.pts-login-panel {
  position: relative;
  display: grid;
  grid-template-rows: minmax(clamp(10rem, 28vh, 16rem), 1fr) auto;
  min-width: 0;
  min-height: 100%;
  min-height: 100dvh;
  overflow: hidden;
  background:
    linear-gradient(180deg, var(--pts-login-panel) 0%, var(--pts-login-surface) 36%, var(--pts-login-surface) 100%);
  border-left: 1px solid color-mix(in srgb, var(--pts-login-accent) 12%, var(--pts-login-line));
  color: var(--pts-login-ink);
}

.pts-login-panel-deco {
  position: relative;
  width: 100%;
  min-height: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
  container-type: size;
}

.pts-login-panel-glow {
  position: absolute;
  pointer-events: none;
  filter: blur(14px);
}

.pts-login-panel-glow--a {
  inset: -22% -18% 8% 8%;
  background: radial-gradient(closest-side, color-mix(in srgb, var(--pts-login-accent) 22%, transparent), transparent 72%);
  animation: pts-login-glow-drift 14s ease-in-out infinite alternate;
}

.pts-login-panel-glow--b {
  inset: -10% 4% 18% auto;
  width: min(50%, 16rem, 55cqw);
  height: min(70%, 55cqh);
  background: radial-gradient(closest-side, color-mix(in srgb, var(--pts-login-accent-soft) 18%, transparent), transparent 74%);
  opacity: 0.9;
  animation: pts-login-glow-drift 18s ease-in-out infinite alternate-reverse;
}

.pts-login-panel-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(color-mix(in srgb, var(--pts-login-accent) 10%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--pts-login-accent) 10%, transparent) 1px, transparent 1px);
  background-size: clamp(2.2rem, 7cqw, 3rem) clamp(2.2rem, 7cqw, 3rem);
  mask-image: linear-gradient(180deg, #000 0%, #000 62%, transparent 100%);
  opacity: 0.42;
}

.pts-login-panel-orbit {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(82%, 22rem, 88cqw, 88cqh);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--pts-login-accent) 16%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--pts-login-accent) 8%, transparent);
  opacity: 0.5;
  animation: pts-login-orbit-spin 52s linear infinite;
}

.pts-login-panel-orbit::before,
.pts-login-panel-orbit::after {
  content: "";
  position: absolute;
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--pts-login-accent) 70%, #fff);
  box-shadow: 0 0 10px color-mix(in srgb, var(--pts-login-accent) 35%, transparent);
}

.pts-login-panel-orbit::before {
  top: 10%;
  left: 50%;
  transform: translateX(-50%);
}

.pts-login-panel-orbit::after {
  bottom: 16%;
  right: 12%;
}

.pts-login-panel-orbit--inner {
  width: min(62%, 15rem, 66cqw, 66cqh);
  opacity: 0.38;
  animation-duration: 36s;
  animation-direction: reverse;
}

.pts-login-panel-nodes {
  position: absolute;
  inset: 4% 6%;
  left: 50%;
  width: min(100%, 26rem, 94cqw);
  height: auto;
  max-height: 100%;
  aspect-ratio: 420 / 320;
  transform: translateX(-50%);
}

.pts-login-panel-links {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.pts-login-panel-links path {
  stroke: color-mix(in srgb, var(--pts-login-accent) 28%, var(--pts-login-line));
  stroke-width: 1.25;
  stroke-dasharray: 4 6;
  opacity: 0.45;
  animation: pts-login-dash 20s linear infinite;
}

.pts-login-panel-hub {
  position: absolute;
  left: 50%;
  top: 52%;
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
  width: clamp(2.6rem, 14cqw, 3.8rem);
  height: clamp(2.6rem, 14cqw, 3.8rem);
}

.pts-login-panel-hub-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--pts-login-accent) 38%, var(--pts-login-line));
  background:
    radial-gradient(circle at 35% 30%, color-mix(in srgb, #fff 85%, transparent), transparent 55%),
    color-mix(in srgb, var(--pts-login-accent) 10%, var(--pts-login-surface));
  box-shadow:
    0 0 0 5px color-mix(in srgb, var(--pts-login-accent) 8%, transparent),
    0 16px 36px -18px color-mix(in srgb, var(--pts-login-accent) 35%, transparent);
  animation: pts-login-hub-pulse 4s ease-in-out infinite;
}

.pts-login-panel-hub-core {
  position: relative;
  z-index: 1;
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  color: var(--pts-login-accent);
}

.pts-login-panel-node {
  position: absolute;
  display: grid;
  place-items: center;
  width: clamp(1.9rem, 9cqw, 2.35rem);
  height: clamp(1.9rem, 9cqw, 2.35rem);
  border-radius: calc(var(--pts-login-radius) + 0.3rem);
  border: 1px solid color-mix(in srgb, var(--pts-login-accent) 22%, var(--pts-login-line));
  background: color-mix(in srgb, var(--pts-login-surface) 82%, var(--pts-login-accent));
  color: var(--pts-login-accent);
  box-shadow: 0 12px 24px -16px color-mix(in srgb, var(--pts-login-accent) 30%, transparent);
  backdrop-filter: blur(8px);
  animation: pts-login-node-float 8s ease-in-out infinite;
}

.pts-login-panel-node .icon {
  width: clamp(0.9rem, 4.5cqw, 1.05rem) !important;
  height: clamp(0.9rem, 4.5cqw, 1.05rem) !important;
  stroke-width: 1.6;
}

.pts-login-panel-node--a {
  left: 10%;
  top: 20%;
  animation-delay: 0s;
}

.pts-login-panel-node--b {
  right: 8%;
  top: 14%;
  animation-delay: -1.8s;
}

.pts-login-panel-node--c {
  left: 14%;
  bottom: 12%;
  animation-delay: -3.6s;
}

.pts-login-panel-node--d {
  right: 10%;
  bottom: 10%;
  animation-delay: -5.4s;
}

.pts-login-form-wrap {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  width: min(100%, 24.5rem);
  margin: 0 auto;
  padding: clamp(0.85rem, 2vh, 1.15rem) clamp(1.25rem, 3vw, 2.5rem) clamp(1.25rem, 3vh, 2rem);
}

.pts-login-brand-mobile {
  display: none;
  margin-bottom: 1.25rem;
}

.pts-login-brand-mobile .pts-brand-wordmark {
  font-family: inherit;
}

.pts-login-brand-mobile .pts-brand-wordmark-pts {
  color: var(--pts-login-ink);
}

.pts-login-brand-mobile .pts-brand-wordmark-flex {
  color: var(--pts-login-accent);
}

.pts-login-eyebrow {
  margin: 0 0 0.4rem;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--pts-login-accent) 72%, var(--pts-login-muted));
}

.pts-login-heading {
  margin: 0;
  font-size: clamp(1.45rem, 2vw, 1.75rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--pts-login-ink);
}

.pts-login-sub {
  margin: 0.45rem 0 1.35rem;
  font-size: 0.88rem;
  color: var(--pts-login-muted);
}

.pts-login-alert {
  margin-bottom: 1rem;
}

.pts-login-form .form-label {
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--pts-login-ink);
}

.pts-login-form .form-control {
  color: var(--pts-login-ink);
  border-color: color-mix(in srgb, var(--pts-login-accent) 12%, var(--pts-login-line));
  background: color-mix(in srgb, var(--pts-login-surface) 94%, var(--pts-login-accent));
  box-shadow: none;
}

.pts-login-form .form-control:focus {
  color: var(--pts-login-ink);
  background: var(--pts-login-surface);
  border-color: color-mix(in srgb, var(--pts-login-accent) 55%, var(--pts-login-line));
  box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--pts-login-accent) 18%, transparent);
}

.pts-login-submit {
  --tblr-btn-color: #fff;
  --tblr-btn-bg: var(--pts-login-accent);
  --tblr-btn-border-color: var(--pts-login-accent);
  --tblr-btn-hover-bg: color-mix(in srgb, var(--pts-login-accent) 88%, #000);
  --tblr-btn-hover-border-color: color-mix(in srgb, var(--pts-login-accent) 88%, #000);
  --tblr-btn-active-bg: color-mix(in srgb, var(--pts-login-accent) 82%, #000);
  --tblr-btn-active-border-color: color-mix(in srgb, var(--pts-login-accent) 82%, #000);
  --tblr-btn-disabled-bg: var(--pts-login-accent);
  --tblr-btn-disabled-border-color: var(--pts-login-accent);
  border-radius: calc(var(--pts-login-radius) + 0.15rem);
  font-weight: 650;
  letter-spacing: -0.01em;
  color: #fff !important;
  background-color: var(--pts-login-accent) !important;
  border-color: var(--pts-login-accent) !important;
  box-shadow: 0 14px 28px -18px color-mix(in srgb, var(--pts-login-accent) 70%, transparent);
}

.pts-login-submit:hover,
.pts-login-submit:focus-visible {
  background-color: color-mix(in srgb, var(--pts-login-accent) 88%, #000) !important;
  border-color: color-mix(in srgb, var(--pts-login-accent) 88%, #000) !important;
  color: #fff !important;
}

.pts-login-foot {
  position: relative;
  z-index: 1;
  margin: 1.75rem 0 0;
  font-size: 0.78rem;
  color: color-mix(in srgb, var(--pts-login-muted) 85%, transparent);
}

.pts-login-legal,
.pts-legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.85rem;
  justify-content: center;
  margin-top: 1.15rem;
  font-size: 0.75rem;
}

.pts-login-legal a,
.pts-legal-links a {
  color: color-mix(in srgb, var(--pts-login-muted) 92%, transparent);
  text-decoration: none;
}

.pts-legal-public {
  min-height: 100vh;
  padding: 1.5rem 1rem 2.5rem;
  background: var(--tblr-bg-surface, #fff);
}

.pts-legal-public-inner {
  max-width: 48rem;
  margin: 0 auto;
}

.pts-legal-public-brand {
  display: inline-flex;
  margin-bottom: 1.25rem;
}

.pts-legal-public-copy {
  margin-top: 1.5rem;
  color: var(--tblr-secondary);
  font-size: 0.82rem;
}

@media (max-width: 991.98px) {
  .pts-login {
    grid-template-columns: 1fr;
  }

  .pts-login-stage {
    display: none;
  }

  .pts-login-panel {
    border-left: 0;
    min-height: 100%;
    min-height: 100dvh;
  }

  .pts-login-panel-deco {
    min-height: clamp(8rem, 22vh, 12rem);
  }

  .pts-login-form-wrap {
    width: min(100%, 24.5rem);
    padding: 1rem max(1rem, env(safe-area-inset-right, 0px)) max(1.35rem, env(safe-area-inset-bottom, 0px)) max(1rem, env(safe-area-inset-left, 0px));
  }

  .pts-login-panel-nodes {
    opacity: 0.7;
  }

  .pts-login-brand-mobile {
    display: block;
  }

  .pts-login-brand-mobile .pts-brand-wordmark {
    font-size: 1.85rem;
  }
}



/* —— Global responsive polish —— */
@media (max-width: 991.98px) {
  .pts-page-scroll {
    -webkit-overflow-scrolling: touch;
  }

  .pts-page-header .row {
    row-gap: 0.65rem;
  }

  .table-responsive {
    margin-left: -0.15rem;
    margin-right: -0.15rem;
    padding-left: 0.15rem;
    padding-right: 0.15rem;
  }
}

@media (max-width: 575.98px) {
  .pts-header-tools {
    --pts-header-hit: 2rem;
    --pts-header-icon-size: 1.1rem;
  }

  .pts-page-actions {
    --pts-page-action-size: 1.9rem;
    --pts-page-action-icon: 1.05rem;
  }

  .card-body {
    padding: 0.9rem;
  }
}

.pts-page-notices {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  flex: 0 0 auto;
}

.pts-page-detail.pts-customer-list-detail,
.pts-page-detail.pts-employee-list-detail,
.pts-page-detail.pts-online-users-detail {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  padding: 0;
}

.pts-page-detail.pts-customer-list-detail > .card,
.pts-page-detail.pts-employee-list-detail > .card {
  flex: 1 1 auto;
  min-height: 0;
}

.pts-page-detail.pts-online-users-detail > .pts-manage-section-table {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

.pts-page-detail.pts-online-users-detail > .pts-manage-section-table .pts-manage-section-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* Finance: KPI row-cards + data-table-standard fill remaining detail height */
.pts-page-detail.pts-finance-detail {
  display: flex;
  flex-direction: column;
  gap: var(--pts-card-gap);
  min-height: 0;
  overflow: hidden;
}

.pts-page-detail.pts-finance-detail > .row.row-cards,
.pts-page-detail.pts-finance-detail > .text-warning,
.pts-page-detail.pts-finance-detail > .text-danger {
  flex: 0 0 auto;
}

.pts-page-detail.pts-finance-detail > .pts-dt-card {
  flex: 1 1 auto;
  min-height: 0;
}

.pts-finance-detail .pts-dt-table th.text-end,
.pts-finance-detail .pts-dt-table td.text-end {
  text-align: right;
}

.pts-finance-detail .pts-dt-table th.text-end .table-sort {
  text-align: right;
}

.pts-finance-row-menu {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  line-height: 1;
}

.pts-finance-row-menu-btn {
  --pts-finance-row-control: 1.65rem;
  width: var(--pts-finance-row-control);
  height: var(--pts-finance-row-control);
  min-width: var(--pts-finance-row-control);
  min-height: var(--pts-finance-row-control);
  padding: 0;
  border-radius: 0.4rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 90%, transparent);
  background: color-mix(in srgb, var(--tblr-bg-surface, #fff) 92%, var(--tblr-body-bg, #f4f6fa));
  color: color-mix(in srgb, var(--tblr-body-color) 72%, var(--tblr-secondary));
  box-shadow: none;
}

.pts-finance-row-menu-btn .icon {
  width: 0.9rem;
  height: 0.9rem;
  opacity: 1;
  color: inherit;
}

.pts-finance-row-menu-btn:hover,
.pts-finance-row-menu-btn:focus-visible,
.pts-finance-row-menu.show > .pts-finance-row-menu-btn {
  border-color: color-mix(in srgb, var(--tblr-primary) 38%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 8%, var(--tblr-bg-surface));
  color: color-mix(in srgb, var(--tblr-primary) 78%, var(--tblr-body-color));
  box-shadow: none;
}

.pts-finance-row-menu-dropdown {
  min-width: 8.5rem;
  padding: 0.2rem;
  border-radius: 0.45rem;
}

.pts-finance-row-menu-action {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.4rem !important;
  padding: 0.28rem 0.5rem !important;
  font-size: 0.8125rem;
  border-radius: 0.3rem;
  line-height: 1.25;
}

.pts-finance-row-menu-action .icon {
  width: 0.85rem !important;
  height: 0.85rem !important;
  flex: 0 0 auto;
  opacity: 0.9;
  color: var(--tblr-primary);
  stroke: currentColor !important;
}

.pts-finance-row-menu-action.text-danger .icon {
  color: var(--tblr-danger, #d63939);
}

.pts-finance-date-range {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: nowrap;
  /* Match DataTable toolbar search / page-size control height */
  --pts-finance-filter-h: 2.15rem;
}

.pts-finance-date-range .form-control {
  width: auto;
  min-width: 9.25rem;
  height: var(--pts-finance-filter-h);
  min-height: var(--pts-finance-filter-h);
  box-sizing: border-box;
}

.pts-finance-date-range .pts-finance-date-range-apply {
  flex: 0 0 auto;
  white-space: nowrap;
  height: var(--pts-finance-filter-h);
  min-height: var(--pts-finance-filter-h);
  padding-top: 0;
  padding-bottom: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  box-sizing: border-box;
  border: var(--tblr-border-width, 1px) solid color-mix(in srgb, var(--tblr-primary, #206bc4) 45%, var(--tblr-border-color, #dce1e7));
}

.pts-finance-date-range .pts-finance-date-range-apply:disabled {
  border-color: color-mix(in srgb, var(--tblr-border-color, #dce1e7) 85%, transparent);
}

.pts-finance-date-range-sep {
  color: var(--tblr-secondary, #6c7a91);
  line-height: 1;
  user-select: none;
}

.pts-page-detail.pts-finance-types-detail > .pts-finance-type-tree-card {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.pts-finance-type-tree-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

.pts-finance-type-tree,
.pts-finance-type-children {
  list-style: none;
  margin: 0;
  padding: 0;
}

.pts-finance-type-tree {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.pts-finance-type-node {
  position: relative;
}

.pts-finance-type-children {
  margin-left: 1.15rem;
  padding-left: 0.85rem;
  border-left: 1px solid color-mix(in srgb, var(--tblr-border-color, #dce1e7) 85%, transparent);
}

.pts-finance-type-node.is-last > .pts-finance-type-children {
  border-left-color: transparent;
}

.pts-finance-type-row {
  display: flex;
  align-items: stretch;
  gap: 0.35rem;
  position: relative;
}

.pts-finance-type-guide {
  flex: 0 0 0.75rem;
  position: relative;
}

.pts-finance-type-node:not(.pts-finance-type-tree > .pts-finance-type-node) > .pts-finance-type-row > .pts-finance-type-guide::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.05rem;
  width: 0.7rem;
  border-top: 1px solid color-mix(in srgb, var(--tblr-border-color, #dce1e7) 85%, transparent);
}

.pts-finance-type-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  padding: 0.45rem 0.65rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color, #dce1e7) 70%, transparent);
  border-radius: 0.45rem;
  background: color-mix(in srgb, var(--tblr-bg-surface, #fff) 92%, var(--tblr-primary, #206bc4) 4%);
}

.pts-finance-type-grip {
  flex: 0 0 auto;
  cursor: grab;
  touch-action: none;
  color: var(--tblr-secondary, #6c7a91);
}

.pts-finance-type-grip:active {
  cursor: grabbing;
}

.pts-finance-type-tree.is-dragging-tree {
  user-select: none;
}

.pts-finance-type-row.is-dragging > .pts-finance-type-main {
  opacity: 0.45;
}

.pts-finance-type-row.is-drop-before > .pts-finance-type-main {
  box-shadow: inset 0 2px 0 0 var(--tblr-primary, #206bc4);
}

.pts-finance-type-row.is-drop-after > .pts-finance-type-main {
  box-shadow: inset 0 -2px 0 0 var(--tblr-primary, #206bc4);
}

.pts-finance-type-row.is-drop-into > .pts-finance-type-main {
  border-color: var(--tblr-primary, #206bc4);
  background: color-mix(in srgb, var(--tblr-primary, #206bc4) 12%, var(--tblr-bg-surface, #fff));
}

.pts-finance-type-tree > .pts-finance-type-node > .pts-finance-type-row > .pts-finance-type-main {
  background: color-mix(in srgb, var(--tblr-bg-surface, #fff) 88%, var(--tblr-primary, #206bc4) 8%);
  border-color: color-mix(in srgb, var(--tblr-primary, #206bc4) 22%, var(--tblr-border-color, #dce1e7));
  font-weight: 600;
}

.pts-finance-type-name {
  flex: 1 1 auto;
  min-width: 0;
  word-break: break-word;
}

.pts-finance-type-actions {
  display: inline-flex;
  flex-wrap: nowrap;
  gap: 0.15rem;
  justify-content: flex-end;
  flex: 0 0 auto;
  align-items: center;
}

.pts-finance-type-children {
  margin-top: 0.25rem;
  margin-bottom: 0.15rem;
}

@media (max-width: 640px) {
  .pts-finance-type-main {
    flex-direction: column;
    align-items: flex-start;
  }

  .pts-finance-type-actions {
    width: 100%;
  }
}

.pts-customer-modal-dialog {
  max-width: calc(100vw - 2rem);
  margin: 1rem auto;
}

.pts-customer-modal-definition {
  width: 56rem;
}

.pts-customer-modal-form {
  width: 48rem;
}

.pts-customer-modal-sm {
  width: 22.5rem;
}

.pts-customer-modal-assign {
  width: min(28rem, calc(100vw - 2rem));
}

.pts-customer-modal-nested {
  z-index: 1060;
}

.pts-customer-modal-nested-backdrop {
  z-index: 1055;
}

.pts-lookup-field .form-control[readonly]:not(:disabled) {
  background-color: var(--tblr-bg-forms, var(--tblr-bg-surface));
  cursor: default;
}

.pts-lookup-field-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  padding-left: 0.55rem;
  padding-right: 0.55rem;
}

.pts-lookup-field-btn .icon {
  width: 1.1rem;
  height: 1.1rem;
}

.pts-employee-options-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: stretch;
  gap: 0.65rem;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.pts-employee-option-section-desc {
  max-width: 36rem;
  font-size: 0.9rem;
  line-height: 1.45;
}

.pts-employee-option-section-row {
  max-width: 18rem;
  justify-content: flex-start;
}

.pts-employee-option-section-row .pts-employee-option-icon {
  flex: 0 1 100%;
}

.pts-employee-option-icon {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
  flex: 1 1 0;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 0.4rem 0.55rem;
  border-radius: calc(var(--tblr-border-radius) + 0.18rem);
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 78%, var(--tblr-primary) 22%);
  background:
    linear-gradient(
      165deg,
      color-mix(in srgb, var(--tblr-bg-surface) 88%, #fff 12%) 0%,
      color-mix(in srgb, var(--tblr-bg-surface) 94%, var(--tblr-secondary) 6%) 100%
    );
  color: var(--tblr-body-color);
  cursor: pointer;
  text-align: left;
  box-shadow:
    0 1px 2px color-mix(in srgb, #000 6%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 40%, transparent);
  transition:
    background 0.16s ease,
    border-color 0.16s ease,
    color 0.16s ease,
    box-shadow 0.16s ease,
    transform 0.16s ease;
}

.pts-employee-option-icon-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.95rem;
  height: 1.95rem;
  flex: 0 0 auto;
  border-radius: calc(var(--tblr-border-radius) + 0.2rem);
  color: color-mix(in srgb, var(--tblr-primary) 78%, #fff);
  background: color-mix(in srgb, var(--tblr-primary) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 24%, transparent);
  box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 28%, transparent);
}

.pts-employee-option-icon .icon {
  width: 1.15rem;
  height: 1.15rem;
  flex-shrink: 0;
}

.pts-employee-option-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.12rem;
  min-width: 0;
  flex: 1 1 auto;
}

.pts-employee-option-label {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0.01em;
  line-height: 1.25;
  color: inherit;
}

.pts-employee-option-switch {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  align-self: flex-start;
  width: auto;
  max-width: max-content;
  min-height: 1.35rem;
  padding-left: 0;
  margin: 0;
}

.pts-employee-option-switch .form-check-input {
  position: static;
  float: none;
  margin: 0;
  margin-left: 0;
  cursor: pointer;
}

.pts-employee-option-icon:hover:not(.is-disabled) {
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--tblr-primary) 42%, var(--tblr-border-color));
  box-shadow:
    0 4px 12px color-mix(in srgb, var(--tblr-primary) 12%, transparent),
    0 1px 2px color-mix(in srgb, #000 6%, transparent);
}

.pts-employee-option-icon:hover:not(.is-disabled) .pts-employee-option-icon-badge {
  background: color-mix(in srgb, var(--tblr-primary) 20%, transparent);
  border-color: color-mix(in srgb, var(--tblr-primary) 34%, transparent);
}

.pts-employee-option-icon.is-on {
  border-color: color-mix(in srgb, var(--tblr-primary) 48%, var(--tblr-border-color));
  background:
    linear-gradient(
      165deg,
      color-mix(in srgb, var(--tblr-primary) 16%, var(--tblr-bg-surface)) 0%,
      color-mix(in srgb, var(--tblr-primary) 7%, var(--tblr-bg-surface)) 100%
    );
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--tblr-primary) 18%, transparent),
    0 3px 10px color-mix(in srgb, var(--tblr-primary) 14%, transparent);
}

.pts-employee-option-icon.is-on .pts-employee-option-icon-badge {
  color: color-mix(in srgb, var(--tblr-primary) 88%, #fff);
  background: color-mix(in srgb, var(--tblr-primary) 22%, transparent);
  border-color: color-mix(in srgb, var(--tblr-primary) 40%, transparent);
}

/* Employee list: compact option indicators before Detail. */
.pts-employee-list-option-col {
  text-align: center;
}

.pts-employee-list-option-head {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: color-mix(in srgb, var(--tblr-body-color) 72%, var(--tblr-secondary));
}

.pts-employee-list-option-head .icon {
  width: 1.05rem;
  height: 1.05rem;
}

.pts-employee-list-option {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
}

.pts-employee-list-option-badge {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 0.6rem;
  border: 1px solid var(--tblr-border-color);
  background: color-mix(in srgb, var(--tblr-bg-surface) 92%, var(--tblr-secondary));
  color: color-mix(in srgb, var(--tblr-body-color) 42%, var(--tblr-secondary));
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease,
    box-shadow 0.15s ease,
    opacity 0.15s ease;
}

.pts-employee-list-option-kind {
  width: 1.05rem;
  height: 1.05rem;
}

.pts-employee-list-option-check {
  position: absolute;
  right: -0.2rem;
  bottom: -0.2rem;
  width: 0.85rem;
  height: 0.85rem;
  padding: 0.08rem;
  border-radius: 999px;
  background: var(--tblr-primary);
  color: #fff;
  box-shadow: 0 0 0 1.5px var(--tblr-bg-surface);
}

.pts-employee-list-option.is-on .pts-employee-list-option-badge {
  color: color-mix(in srgb, var(--tblr-primary) 92%, #fff);
  background:
    linear-gradient(
      165deg,
      color-mix(in srgb, var(--tblr-primary) 28%, var(--tblr-bg-surface)) 0%,
      color-mix(in srgb, var(--tblr-primary) 14%, var(--tblr-bg-surface)) 100%
    );
  border-color: color-mix(in srgb, var(--tblr-primary) 55%, var(--tblr-border-color));
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--tblr-primary) 22%, transparent),
    0 2px 8px color-mix(in srgb, var(--tblr-primary) 18%, transparent);
}

.pts-employee-list-option.is-off .pts-employee-list-option-badge {
  opacity: 0.38;
  filter: grayscale(0.35);
}

.pts-employee-row-menu-btn {
  --pts-employee-row-control: 2rem;
  width: var(--pts-employee-row-control);
  height: var(--pts-employee-row-control);
  min-width: var(--pts-employee-row-control);
  min-height: var(--pts-employee-row-control);
  padding: 0;
  border-radius: 0.6rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 88%, var(--tblr-primary));
  background: var(--tblr-bg-surface);
  color: color-mix(in srgb, var(--tblr-body-color) 78%, var(--tblr-secondary));
  box-shadow: 0 1px 2px color-mix(in srgb, #000 5%, transparent);
}

.pts-employee-row-menu-btn .icon {
  width: 1.05rem;
  height: 1.05rem;
  opacity: 1;
  color: inherit;
}

.pts-employee-row-menu-btn:hover,
.pts-employee-row-menu-btn:focus-visible,
.pts-employee-row-menu.show > .pts-employee-row-menu-btn {
  border-color: color-mix(in srgb, var(--tblr-primary) 45%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-bg-surface));
  color: color-mix(in srgb, var(--tblr-primary) 82%, var(--tblr-body-color));
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--tblr-primary) 16%, transparent),
    0 2px 6px color-mix(in srgb, var(--tblr-primary) 12%, transparent);
}

.pts-employee-row-menu-action {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.55rem !important;
}

.pts-employee-row-menu-action .icon {
  width: 0.95rem !important;
  height: 0.95rem !important;
  flex: 0 0 auto;
  opacity: 0.9;
  color: var(--tblr-primary);
  stroke: currentColor !important;
}

.pts-employee-row-menu-action.text-danger .icon {
  color: var(--tblr-danger, #d63939);
}

.pts-employee-row-menu-action:disabled .icon {
  opacity: 0.45;
}

.pts-employee-list-avatar-col {
  width: 1%;
  vertical-align: middle;
}

.pts-employee-list-avatar {
  --pts-list-avatar-size: 2.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: var(--pts-list-avatar-size);
  height: var(--pts-list-avatar-size);
  border-radius: 50%;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1;
  color: color-mix(in srgb, var(--tblr-primary) 88%, #fff);
  background:
    linear-gradient(
      165deg,
      color-mix(in srgb, var(--tblr-primary) 22%, var(--tblr-bg-surface)) 0%,
      color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-bg-surface)) 100%
    );
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 34%, var(--tblr-border-color));
  box-shadow: 0 1px 3px color-mix(in srgb, var(--tblr-primary) 12%, transparent);
  user-select: none;
}

.pts-employee-list-avatar.is-empty {
  color: var(--tblr-secondary);
  font-weight: 600;
  background: color-mix(in srgb, var(--tblr-secondary) 8%, var(--tblr-bg-surface));
  border-color: var(--tblr-border-color);
  box-shadow: none;
}

.pts-employee-list-stack {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
}

.pts-employee-list-stack-meta .pts-country-cell {
  gap: 0.35rem;
}

.pts-employee-list-assign-line {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-width: 0;
}

.pts-employee-list-assign-line .icon {
  width: 0.9rem;
  height: 0.9rem;
  flex: 0 0 auto;
  color: var(--tblr-primary);
  opacity: 0.88;
}

.pts-employee-list-assign-line span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-employee-option-icon.is-off .pts-employee-option-label {
  color: color-mix(in srgb, var(--tblr-body-color) 78%, var(--tblr-secondary));
}

.pts-employee-option-icon.is-disabled {
  opacity: 0.55;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.pts-employee-option-icon.is-disabled .form-check-input {
  cursor: not-allowed;
}

[data-bs-theme="dark"] .pts-employee-option-icon {
  box-shadow: 0 1px 2px color-mix(in srgb, #000 28%, transparent);
  background:
    linear-gradient(
      165deg,
      color-mix(in srgb, var(--tblr-bg-surface) 88%, var(--tblr-primary) 12%) 0%,
      var(--tblr-bg-surface) 100%
    );
}

.pts-employee-initials-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
}

.pts-employee-initials-col-field {
  align-self: end;
}

.pts-employee-initials-avatar {
  /* Match Tabler .form-control min-height — max size that keeps the row height. */
  --pts-initials-size: calc(1.25rem + 1.125rem + (var(--tblr-border-width, 1px) * 2));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: var(--pts-initials-size);
  height: var(--pts-initials-size);
  max-height: var(--pts-initials-size);
  flex: 0 0 auto;
  border-radius: 50%;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1;
  color: color-mix(in srgb, var(--tblr-primary) 82%, #fff);
  background: color-mix(in srgb, var(--tblr-primary) 16%, var(--tblr-bg-surface));
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 28%, var(--tblr-border-color));
  user-select: none;
}

.pts-employee-initials-avatar.is-empty {
  color: var(--tblr-secondary);
  font-weight: 600;
  background: color-mix(in srgb, var(--tblr-secondary) 8%, var(--tblr-bg-surface));
  border-color: var(--tblr-border-color);
}

.pts-customer-modal-dialog.pts-customer-modal-assign .modal-content {
  height: min(34rem, calc(100vh - 2rem));
  min-height: min(34rem, calc(100vh - 2rem));
  max-height: calc(100vh - 2rem);
}

.pts-customer-modal-dialog.pts-customer-modal-assign .pts-customer-modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: 0.85rem 1rem 0.7rem;
}

.pts-customer-modal-dialog.pts-customer-modal-assign .pts-customer-modal-footer {
  flex: 0 0 auto;
}

.pts-acc-plan-assign {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
}

.pts-acc-plan-assign-search {
  flex: 0 0 auto;
}

.pts-acc-plan-assign-search .form-control {
  min-height: 2.35rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 16%, var(--tblr-border-color));
}

.pts-acc-plan-assign-list {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  padding: 0.2rem;
  border-radius: calc(var(--tblr-border-radius) + 0.12rem);
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, #f1f5f9) 55%, var(--tblr-bg-surface));
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-border-color));
}

.pts-acc-plan-assign-empty {
  margin: auto;
  padding: 1.25rem 0.85rem;
  text-align: center;
  font-size: 0.82rem;
  color: var(--tblr-secondary);
}

.pts-acc-plan-assign-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.12rem;
  width: 100%;
  margin: 0;
  padding: 0.62rem 0.72rem;
  border: 1px solid transparent;
  border-radius: calc(var(--tblr-border-radius) + 0.06rem);
  background: var(--tblr-bg-surface);
  color: inherit;
  text-align: left;
  appearance: none;
  cursor: pointer;
  transition: border-color 0.14s ease, box-shadow 0.14s ease, background 0.14s ease;
}

.pts-acc-plan-assign-item:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--tblr-primary) 22%, var(--tblr-border-color));
  box-shadow: 0 8px 16px -14px color-mix(in srgb, var(--tblr-primary) 45%, transparent);
}

.pts-acc-plan-assign-item.is-selected {
  border-color: color-mix(in srgb, var(--tblr-primary) 42%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 9%, var(--tblr-bg-surface));
  box-shadow: 0 0 0 0.12rem color-mix(in srgb, var(--tblr-primary) 16%, transparent);
}

.pts-acc-plan-assign-item:disabled {
  opacity: 0.65;
  cursor: default;
}

.pts-acc-plan-assign-name {
  font-size: 0.86rem;
  font-weight: 650;
  line-height: 1.25;
}

.pts-acc-plan-assign-meta {
  font-size: 0.72rem;
  color: var(--tblr-secondary);
  line-height: 1.2;
}

.pts-customer-modal-history {
  width: min(42rem, calc(100vw - 2rem));
}

.pts-customer-modal-dialog.pts-customer-modal-history .modal-content {
  height: min(44rem, calc(100vh - 2rem));
  max-height: calc(100vh - 2rem);
}

.pts-customer-modal-dialog.pts-customer-modal-history .pts-customer-modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 0.95rem 1.05rem 1rem;
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, #f1f5f9) 45%, var(--tblr-bg-surface));
}

.pts-acc-history {
  --pts-hist-current: var(--tblr-success, #2fb344);
  --pts-hist-moved: var(--tblr-primary);
  --pts-hist-warn: var(--tblr-warning, #f59f00);
  --pts-hist-ended: var(--tblr-secondary);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.pts-acc-history-empty {
  padding: 2rem 1rem;
  text-align: center;
  font-size: 0.84rem;
  color: var(--tblr-secondary);
}

.pts-acc-history-kpis {
  display: grid;
  grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
}

.pts-acc-history-kpi {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
  padding: 0.65rem 0.75rem;
  border-radius: calc(var(--tblr-border-radius) + 0.2rem);
  background: var(--tblr-bg-surface);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-border-color));
  box-shadow: 0 10px 22px -20px color-mix(in srgb, var(--tblr-primary) 60%, transparent);
}

.pts-acc-history-kpi.is-current {
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--pts-hist-current) 14%, var(--tblr-bg-surface)),
    var(--tblr-bg-surface) 75%
  );
  border-color: color-mix(in srgb, var(--pts-hist-current) 30%, var(--tblr-border-color));
}

.pts-acc-history-kpi-label {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--tblr-secondary);
}

.pts-acc-history-kpi-label .icon {
  width: 0.9rem;
  height: 0.9rem;
  color: var(--pts-hist-current);
}

.pts-acc-history-kpi-value {
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pts-acc-history-kpi.is-current .pts-acc-history-kpi-value {
  font-size: 0.92rem;
  padding-top: 0.15rem;
}

.pts-acc-history-timeline {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0 0 0 1.55rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.pts-acc-history-timeline::before {
  content: "";
  position: absolute;
  left: 0.5rem;
  top: 0.6rem;
  bottom: 0.6rem;
  width: 2px;
  border-radius: 2px;
  background: linear-gradient(
    to bottom,
    color-mix(in srgb, var(--tblr-primary) 45%, transparent),
    color-mix(in srgb, var(--tblr-border-color) 90%, transparent)
  );
}

.pts-acc-history-item {
  position: relative;
  --pts-hist-tone: var(--pts-hist-ended);
}

.pts-acc-history-item.is-current { --pts-hist-tone: var(--pts-hist-current); }
.pts-acc-history-item.is-moved { --pts-hist-tone: var(--pts-hist-moved); }
.pts-acc-history-item.is-warn { --pts-hist-tone: var(--pts-hist-warn); }

.pts-acc-history-dot {
  position: absolute;
  left: -1.4rem;
  top: 0.95rem;
  width: 0.9rem;
  height: 0.9rem;
  border-radius: 50%;
  background: var(--tblr-bg-surface);
  border: 3px solid var(--pts-hist-tone);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pts-hist-tone) 18%, transparent);
}

.pts-acc-history-item.is-current .pts-acc-history-dot {
  background: var(--pts-hist-tone);
  animation: pts-acc-history-pulse 2.2s ease-out infinite;
}

@keyframes pts-acc-history-pulse {
  0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--pts-hist-current) 45%, transparent); }
  70% { box-shadow: 0 0 0 0.45rem transparent; }
  100% { box-shadow: 0 0 0 0 transparent; }
}

@media (prefers-reduced-motion: reduce) {
  .pts-acc-history-item.is-current .pts-acc-history-dot {
    animation: none;
  }
}

.pts-acc-history-card {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding: 0.75rem 0.85rem;
  border-radius: calc(var(--tblr-border-radius) + 0.25rem);
  background: var(--tblr-bg-surface);
  border: 1px solid color-mix(in srgb, var(--pts-hist-tone) 16%, var(--tblr-border-color));
  border-left: 3px solid var(--pts-hist-tone);
  box-shadow: 0 12px 24px -22px color-mix(in srgb, var(--pts-hist-tone) 70%, transparent);
}

.pts-acc-history-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.6rem;
}

.pts-acc-history-house {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-width: 0;
  font-size: 0.9rem;
}

.pts-acc-history-house .icon {
  flex: 0 0 auto;
  width: 1rem;
  height: 1rem;
  color: var(--pts-hist-tone);
}

.pts-acc-history-house strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-acc-history-badge {
  flex: 0 0 auto;
  padding: 0.18rem 0.55rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 650;
  white-space: nowrap;
  color: var(--pts-hist-tone);
  background: color-mix(in srgb, var(--pts-hist-tone) 12%, var(--tblr-bg-surface));
  border: 1px solid color-mix(in srgb, var(--pts-hist-tone) 28%, transparent);
}

.pts-acc-history-badge.is-current { color: var(--pts-hist-current); }

.pts-acc-history-meta,
.pts-acc-history-people {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  font-size: 0.76rem;
  color: var(--tblr-secondary);
}

.pts-acc-history-meta span,
.pts-acc-history-people span {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.pts-acc-history-meta .icon,
.pts-acc-history-people .icon {
  width: 0.85rem;
  height: 0.85rem;
}

.pts-acc-history-people strong {
  color: var(--tblr-body-color);
  font-weight: 600;
}

.pts-acc-history-range {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 0.6rem;
  padding: 0.5rem 0.65rem;
  border-radius: var(--tblr-border-radius);
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, #f1f5f9) 70%, var(--tblr-bg-surface));
}

.pts-acc-history-range > div {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.pts-acc-history-range small {
  font-size: 0.64rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--tblr-secondary);
}

.pts-acc-history-range span {
  font-size: 0.8rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.pts-acc-history-range-arrow {
  color: var(--pts-hist-tone);
  font-weight: 700;
}

.pts-acc-history-moved-to {
  align-self: flex-start;
  padding: 0.25rem 0.6rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--pts-hist-moved);
  background: color-mix(in srgb, var(--pts-hist-moved) 9%, var(--tblr-bg-surface));
}

.pts-customer-modal-report {
  width: min(64rem, calc(100vw - 2rem));
}

.pts-customer-modal-dialog.pts-customer-modal-report .modal-content {
  height: min(46rem, calc(100vh - 2rem));
  max-height: calc(100vh - 2rem);
}

.pts-customer-modal-dialog.pts-customer-modal-report .pts-customer-modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: 0.9rem 1rem 0.95rem;
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, #f1f5f9) 45%, var(--tblr-bg-surface));
}

.pts-acc-report {
  --pts-rep-in: var(--tblr-success, #2fb344);
  --pts-rep-out: var(--tblr-danger, #d63939);
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  flex: 1 1 auto;
  min-height: 0;
}

.pts-acc-report-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
}

.pts-acc-report-presets {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.2rem;
  padding: 0.2rem;
  border-radius: 999px;
  background: var(--tblr-bg-surface);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 14%, var(--tblr-border-color));
}

.pts-acc-report-preset {
  padding: 0.32rem 0.8rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--tblr-secondary);
  font-size: 0.78rem;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  transition: background 0.14s ease, color 0.14s ease, box-shadow 0.14s ease;
}

.pts-acc-report-preset:hover {
  color: var(--tblr-body-color);
  background: color-mix(in srgb, var(--tblr-primary) 7%, transparent);
}

.pts-acc-report-preset.is-active {
  color: var(--tblr-primary-fg, #fff);
  background: var(--tblr-primary);
  box-shadow: 0 6px 14px -8px color-mix(in srgb, var(--tblr-primary) 70%, transparent);
}

.pts-acc-export {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.9rem;
}

.pts-acc-export-hint {
  margin: 0;
  font-size: 0.8rem;
  color: var(--tblr-secondary);
}

.pts-acc-report-range {
  display: flex;
  align-items: flex-end;
  gap: 0.4rem;
}

.pts-acc-report-range-field {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  margin: 0;
}

.pts-acc-report-range-field small {
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--tblr-secondary);
}

.pts-acc-report-range-field .form-control {
  width: 9.6rem;
  font-variant-numeric: tabular-nums;
}

.pts-acc-report-range-sep {
  padding-bottom: 0.45rem;
  color: var(--tblr-primary);
  font-weight: 700;
}

.pts-acc-report-search {
  width: min(14rem, 100%);
  align-self: flex-end;
}

.pts-acc-report-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
}

.pts-acc-report-kpi {
  --pts-rep-tone: var(--tblr-secondary);
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.6rem 0.75rem;
  border-radius: calc(var(--tblr-border-radius) + 0.2rem);
  background: var(--tblr-bg-surface);
  border: 1px solid color-mix(in srgb, var(--pts-rep-tone) 18%, var(--tblr-border-color));
  border-top: 3px solid var(--pts-rep-tone);
}

.pts-acc-report-kpi.is-primary { --pts-rep-tone: var(--tblr-primary); }
.pts-acc-report-kpi.is-in { --pts-rep-tone: var(--pts-rep-in); }
.pts-acc-report-kpi.is-out { --pts-rep-tone: var(--pts-rep-out); }

.pts-acc-report-kpi span {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--tblr-secondary);
}

.pts-acc-report-kpi strong {
  font-size: 1.3rem;
  line-height: 1.15;
  color: var(--pts-rep-tone);
}

.pts-acc-report-kpi:not(.is-primary):not(.is-in):not(.is-out) strong {
  color: var(--tblr-body-color);
}

.pts-acc-report-body {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr);
  gap: 0.75rem;
  flex: 1 1 auto;
  min-height: 0;
  transition: opacity 0.15s ease;
}

.pts-acc-report-body.is-loading {
  opacity: 0.55;
}

.pts-acc-report-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
  border-radius: calc(var(--tblr-border-radius) + 0.25rem);
  background: var(--tblr-bg-surface);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-border-color));
  overflow: hidden;
}

.pts-acc-report-panel-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.6rem 0.8rem;
  border-bottom: 1px solid var(--tblr-border-color);
  font-size: 0.84rem;
}

.pts-acc-report-panel-head small {
  color: var(--tblr-secondary);
  font-size: 0.72rem;
}

.pts-acc-report-empty {
  margin: auto;
  padding: 2rem 1rem;
  text-align: center;
  font-size: 0.82rem;
  color: var(--tblr-secondary);
}

.pts-acc-report-houses {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 0.6rem;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
  align-content: start;
  gap: 0.55rem;
}

.pts-acc-report-house {
  border-radius: calc(var(--tblr-border-radius) + 0.1rem);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 14%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 3%, var(--tblr-bg-surface));
  overflow: hidden;
}

.pts-acc-report-house-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.5rem 0.65rem;
  background: color-mix(in srgb, var(--tblr-primary) 8%, var(--tblr-bg-surface));
}

.pts-acc-report-house-name {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
  font-size: 0.82rem;
}

.pts-acc-report-house-name strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-acc-report-house-name .icon,
.pts-acc-report-house-count .icon {
  flex: 0 0 auto;
  width: 0.9rem;
  height: 0.9rem;
  color: var(--tblr-primary);
}

.pts-acc-report-house-count {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 650;
  background: var(--tblr-bg-surface);
}

.pts-acc-report-people {
  list-style: none;
  margin: 0;
  padding: 0.2rem 0;
}

.pts-acc-report-people li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "person bed"
    "person since";
  gap: 0 0.6rem;
  padding: 0.38rem 0.65rem;
}

.pts-acc-report-people li + li {
  border-top: 1px dashed color-mix(in srgb, var(--tblr-border-color) 80%, transparent);
}

.pts-acc-report-person {
  grid-area: person;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  font-size: 0.8rem;
}

.pts-acc-report-person strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
}

.pts-acc-report-person small {
  font-size: 0.68rem;
  color: var(--tblr-secondary);
}

.pts-acc-report-bed {
  grid-area: bed;
  justify-self: end;
  font-size: 0.72rem;
  font-weight: 600;
}

.pts-acc-report-since {
  grid-area: since;
  justify-self: end;
  font-size: 0.66rem;
  color: var(--tblr-secondary);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.pts-acc-report-people li.is-ended .pts-acc-report-person strong {
  color: var(--tblr-secondary);
  font-weight: 500;
}

.pts-acc-report-people li:not(.is-ended) .pts-acc-report-since {
  color: var(--pts-rep-in);
  font-weight: 600;
}

.pts-acc-report-events.is-range li {
  grid-template-columns: 4.6rem minmax(0, 1fr);
}

.pts-acc-report-events time span {
  display: block;
}

.pts-acc-report-events time span + span {
  font-weight: 500;
  font-size: 0.68rem;
}

.pts-acc-report-events {
  list-style: none;
  margin: 0;
  padding: 0.5rem 0.7rem;
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.pts-acc-report-events li {
  --pts-rep-tone: var(--pts-rep-in);
  display: grid;
  grid-template-columns: 3.1rem minmax(0, 1fr);
  gap: 0.55rem;
  align-items: start;
}

.pts-acc-report-events li.is-out { --pts-rep-tone: var(--pts-rep-out); }

.pts-acc-report-events time {
  padding-top: 0.45rem;
  font-size: 0.74rem;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  color: var(--tblr-secondary);
  text-align: right;
}

.pts-acc-report-event-body {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
  padding: 0.45rem 0.6rem;
  border-radius: var(--tblr-border-radius);
  border-left: 3px solid var(--pts-rep-tone);
  background: color-mix(in srgb, var(--pts-rep-tone) 6%, var(--tblr-bg-surface));
}

.pts-acc-report-event-title {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  min-width: 0;
  font-size: 0.8rem;
}

.pts-acc-report-event-title strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-acc-report-event-kind {
  flex: 0 0 auto;
  padding: 0.05rem 0.42rem;
  border-radius: 999px;
  font-size: 0.64rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--pts-rep-tone);
  background: color-mix(in srgb, var(--pts-rep-tone) 14%, var(--tblr-bg-surface));
}

.pts-acc-report-event-body small {
  font-size: 0.7rem;
  color: var(--tblr-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-acc-report-event-by {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.pts-acc-report-event-by .icon {
  width: 0.8rem;
  height: 0.8rem;
}

.pts-acc-report-event-by em {
  margin-left: auto;
  font-style: normal;
  font-weight: 600;
}

.pts-acc-report-event-by em.is-moved { color: var(--tblr-primary); }
.pts-acc-report-event-by em.is-warn { color: var(--tblr-warning, #f59f00); }

@media (max-width: 991.98px) {
  .pts-customer-modal-dialog.pts-customer-modal-report .pts-customer-modal-body {
    overflow: auto;
  }

  .pts-acc-report-body {
    grid-template-columns: minmax(0, 1fr);
    flex: 0 0 auto;
  }

  .pts-acc-report-houses,
  .pts-acc-report-events {
    max-height: 24rem;
  }
}

@media (max-width: 575.98px) {
  .pts-customer-modal-history,
  .pts-customer-modal-report {
    width: 100%;
  }

  .pts-acc-report-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pts-acc-history-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pts-acc-history-kpi.is-current {
    grid-column: 1 / -1;
  }
}

.pts-acc-room-form {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  width: 100%;
  max-width: 18.5rem;
  margin-inline: auto;
}

.pts-acc-room-form .pts-acc-room-field {
  display: flex;
  flex-direction: column;
  gap: 0.32rem;
  min-width: 0;
}

.pts-acc-room-form .form-label {
  margin-bottom: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: color-mix(in srgb, var(--tblr-body-color) 88%, var(--tblr-secondary));
}

.pts-acc-room-form .form-control {
  min-height: 2.25rem;
}

.pts-acc-room-form .alert {
  margin-bottom: 0;
}

.pts-customer-modal-manage {
  width: min(72rem, calc(100vw - 2rem));
}

/*
 * LOCKED fixed size — employee-modal-size-lock.
 * Do not change --pts-employee-modal-width / --pts-employee-modal-height
 * unless PTS explicitly requests a new fixed size.
 * Dialog stays viewport-centered; fixed rem size lives on .modal-content.
 */
.pts-customer-modal-manage.pts-employee-modal-manage {
  --pts-employee-modal-width: 76rem;
  --pts-employee-modal-height: 54rem;
  width: var(--pts-employee-modal-width);
  max-width: min(var(--pts-employee-modal-width), calc(100vw - 1.5rem));
  height: auto;
  min-height: calc(100vh - 2rem);
  max-height: none;
  margin: 1rem auto;
  display: flex;
  align-items: center;
  flex: 0 0 auto;
}

.pts-customer-modal-manage .modal-content {
  height: min(50rem, calc(100vh - 1.25rem));
  min-height: min(50rem, calc(100vh - 1.25rem));
  max-height: calc(100vh - 1.25rem);
}

.pts-customer-modal-manage.pts-employee-modal-manage .modal-content {
  width: 100%;
  height: var(--pts-employee-modal-height);
  min-height: var(--pts-employee-modal-height);
  max-height: min(var(--pts-employee-modal-height), calc(100vh - 2rem));
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

@media (max-height: 56rem) {
  .pts-customer-modal-manage.pts-employee-modal-manage {
    height: auto;
    min-height: calc(100vh - 2rem);
    max-height: none;
  }

  .pts-customer-modal-manage.pts-employee-modal-manage .modal-content {
    height: calc(100vh - 2rem);
    min-height: calc(100vh - 2rem);
    max-height: calc(100vh - 2rem);
  }
}

.pts-customer-modal-manage .pts-customer-modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: 0;
}

.pts-customer-modal-manage.pts-employee-modal-manage .pts-manage-content-detail {
  padding: 0.85rem 1.15rem 1.1rem;
}

.pts-customer-modal-manage.pts-employee-modal-manage .pts-manage-content-detail:has(.pts-customer-detail-general) {
  overflow: auto;
  min-height: 0;
  padding-bottom: 1.25rem;
}

.pts-customer-modal-manage.pts-employee-modal-manage .pts-customer-modal-header {
  padding-top: 0.7rem;
  padding-bottom: 0.7rem;
}

.pts-customer-modal-manage.pts-employee-modal-manage .pts-manage-detail-footer {
  --pts-manage-detail-footer-min-height: 3.15rem;
  padding-top: 0.55rem;
  padding-bottom: 0.55rem;
}

/* Compact category rows — employee modal has many sections */
.pts-customer-modal-manage.pts-employee-modal-manage .pts-manage-nav-list {
  gap: 0.35rem;
}

.pts-customer-modal-manage.pts-employee-modal-manage .pts-manage-nav-row {
  margin-bottom: 0.05rem;
}

.pts-customer-modal-manage.pts-employee-modal-manage .pts-manage-nav-item {
  gap: 0.6rem;
  padding: 0.44rem 0.52rem;
  min-height: 0;
}

.pts-customer-modal-manage.pts-employee-modal-manage .pts-manage-nav-icon {
  width: 1.8rem;
  height: 1.8rem;
  flex: 0 0 1.8rem;
}

.pts-customer-modal-manage.pts-employee-modal-manage .pts-manage-nav-item .icon {
  width: 1rem;
  height: 1rem;
}

.pts-customer-modal-manage.pts-employee-modal-manage .pts-manage-nav-text {
  line-height: 1.18;
}

.pts-customer-modal-manage.pts-employee-modal-manage .pts-manage-nav-text strong {
  font-size: 0.8rem;
}

.pts-customer-modal-manage.pts-employee-modal-manage .pts-manage-nav-text small {
  margin-top: 0.06rem;
  font-size: 0.68rem;
}

.pts-customer-modal-manage.pts-employee-modal-manage .pts-manage-drag-handle .icon {
  width: 0.95rem;
  height: 0.95rem;
}

.pts-customer-modal-manage.pts-employee-modal-manage .pts-manage-nav {
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

.pts-customer-modal-manage.pts-employee-modal-manage .pts-manage-nav-groups {
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: stable;
}

.pts-acc-plan-edit-manage {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  margin: 0 !important;
}

.pts-customer-modal-manage .pts-manage-aside {
  height: 100%;
}

.pts-customer-modal-manage .pts-manage-main,
.pts-customer-modal-manage .pts-manage-main-frame {
  min-height: 0;
  height: 100%;
}

.pts-customer-modal-manage .pts-manage-content-detail {
  overflow: auto;
}

.pts-customer-modal-dialog .modal-content {
  min-height: 32rem;
  max-height: calc(100vh - 2rem);
  display: flex;
  flex-direction: column;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 14%, var(--tblr-border-color));
  background: var(--tblr-bg-surface);
  box-shadow: 0 22px 56px -28px color-mix(in srgb, var(--tblr-primary) 42%, transparent);
}

/* Compact room edit: must follow the 32rem dialog rule (equal specificity otherwise loses). */
.pts-customer-modal-dialog.pts-customer-modal-sm .modal-content {
  min-height: 0;
  height: auto;
  max-height: calc(100vh - 2rem);
}

.pts-customer-modal-dialog.pts-customer-modal-sm .pts-customer-modal-header {
  padding: 0.85rem 1.25rem 0.75rem;
}

.pts-customer-modal-dialog.pts-customer-modal-sm .pts-customer-modal-body {
  flex: 0 0 auto;
  overflow: visible;
  padding: 1.15rem 1.25rem 1.2rem;
}

.pts-customer-modal-dialog.pts-customer-modal-sm .pts-customer-modal-footer {
  padding: 0.75rem 1.25rem 0.9rem;
}

.pts-customer-modal-dialog.pts-customer-modal-sm .pts-customer-modal-icon {
  width: 2.1rem;
  height: 2.1rem;
}

.pts-customer-modal-dialog.pts-customer-modal-sm .pts-customer-modal-subtitle {
  font-size: 0.78rem;
}

.pts-customer-modal-header {
  flex: 0 0 auto;
  align-items: flex-start;
  gap: 0.75rem;
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-border-color));
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--tblr-primary) 7%, var(--tblr-bg-surface)) 0%,
    var(--tblr-bg-surface) 100%
  );
}

.pts-customer-modal-heading {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  min-width: 0;
}

.pts-customer-modal-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: calc(var(--tblr-border-radius) + 0.15rem);
  color: color-mix(in srgb, var(--tblr-primary) 78%, #fff);
  background: color-mix(in srgb, var(--tblr-primary) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 22%, transparent);
  flex: 0 0 auto;
}

.pts-customer-modal-icon .icon {
  width: 1.2rem;
  height: 1.2rem;
}

.pts-customer-modal-titles {
  min-width: 0;
}

.pts-customer-modal-subtitle {
  margin-top: 0.2rem;
  font-size: 0.84rem;
  color: var(--tblr-secondary);
  line-height: 1.35;
}

.pts-customer-modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
}

.pts-customer-modal-footer {
  flex: 0 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  padding-top: 0.65rem;
  padding-bottom: 0.75rem;
  border-top: 1px solid var(--tblr-border-color);
}

.pts-customer-modal-footer-meta {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
  flex: 1 1 12rem;
}

.pts-customer-modal-footer-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem;
  margin-left: 0;
  flex: 1 1 auto;
  min-width: min(100%, 16rem);
}

.pts-modal-footer-start,
.pts-modal-footer-end {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
}

.pts-modal-footer-end {
  margin-left: auto;
}

/* Standard Bootstrap modal footers: primary left, dismiss right, bordered buttons */
.modal-footer:not(.pts-theme-footer) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.modal-footer:not(.pts-theme-footer) > .btn-outline-secondary,
.pts-customer-modal-footer-actions > .btn-outline-secondary,
.pts-modal-footer-end > .btn-outline-secondary {
  border-width: 1px;
}

/* Keep dismiss on the right even when primary is absent (view-only) */
.modal-footer:not(.pts-theme-footer) > .btn-outline-secondary:last-child,
.pts-customer-modal-footer-actions > .btn-outline-secondary:last-child {
  margin-left: auto;
}

.pts-ticket-footer > .btn-outline-secondary {
  border-width: 1px;
  margin-left: 0;
}

.pts-customer-def-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(10rem, 1.4fr);
  gap: 0.55rem;
  margin-bottom: 0.85rem;
}

.pts-customer-def-metric {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.1rem;
  min-width: 0;
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--tblr-border-color);
  border-radius: var(--tblr-border-radius);
  background: color-mix(in srgb, var(--tblr-bg-surface) 90%, var(--tblr-primary) 10%);
}

.pts-customer-def-metric .subheader {
  margin: 0;
  font-size: 0.68rem;
}

.pts-customer-def-metric strong {
  font-size: 1.05rem;
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
}

.pts-customer-def-metric-wide strong {
  display: block;
  max-width: 100%;
}

.pts-customer-def-search-wrap {
  display: flex;
  align-items: center;
  min-width: 0;
}

.pts-customer-def-panels {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: 0.85rem;
  min-height: 18rem;
}

.pts-customer-def-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
  border: 1px solid var(--tblr-border-color);
  border-radius: calc(var(--tblr-border-radius) + 0.1rem);
  overflow: hidden;
  background: color-mix(in srgb, var(--tblr-bg-surface) 96%, var(--tblr-primary) 4%);
}

.pts-customer-def-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.55rem 0.75rem;
  border-bottom: 1px solid var(--tblr-border-color);
  background: color-mix(in srgb, var(--tblr-bg-surface) 88%, var(--tblr-primary) 12%);
}

.pts-customer-def-panel-body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0.75rem;
}

.pts-customer-def-table-wrap {
  padding: 0;
  overflow: auto;
}

.pts-customer-def-table-wrap {
  --pts-dt-row-gap: 0.5rem;
  --pts-dt-head-gap: 0.3rem;
  --pts-dt-row-bg: color-mix(in srgb, var(--tblr-bg-surface) 88%, var(--tblr-body-bg));
  --pts-dt-row-bg-alt: color-mix(in srgb, var(--tblr-primary) 5%, var(--tblr-bg-surface));
  --pts-dt-row-hover: color-mix(in srgb, var(--tblr-primary) 11%, var(--tblr-bg-surface));
  --pts-dt-row-radius: var(--tblr-border-radius);
  --pts-dt-row-border: color-mix(in srgb, var(--tblr-border-color) 92%, var(--tblr-body-color));
  --pts-dt-row-border-hover: color-mix(in srgb, var(--tblr-primary) 28%, var(--tblr-border-color));
  --pts-dt-row-transition: background-color 0.24s ease, border-color 0.24s ease;
}

[data-bs-theme="dark"] .pts-customer-def-table-wrap {
  --pts-dt-row-bg: color-mix(in srgb, var(--tblr-bg-surface) 92%, #000);
  --pts-dt-row-bg-alt: color-mix(in srgb, var(--tblr-primary) 9%, var(--tblr-bg-surface));
  --pts-dt-row-hover: color-mix(in srgb, var(--tblr-primary) 16%, var(--tblr-bg-surface));
}

.pts-customer-def-table {
  border-collapse: separate;
  border-spacing: 0 var(--pts-dt-row-gap);
}

.pts-customer-def-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--tblr-bg-surface);
  padding-bottom: 0.35rem;
  border: none;
  box-shadow: 0 1px 0 color-mix(in srgb, var(--tblr-border-color) 65%, transparent);
}

.pts-customer-def-table tbody td {
  background-color: var(--pts-dt-row-bg);
  background-clip: padding-box;
  box-shadow: none;
  transition: var(--pts-dt-row-transition);
  border-top: var(--tblr-border-width) var(--tblr-border-style) var(--pts-dt-row-border);
  border-bottom: var(--tblr-border-width) var(--tblr-border-style) var(--pts-dt-row-border);
  border-left: none;
  border-right: none;
}

.pts-customer-def-table tbody td:first-child {
  border-left: var(--tblr-border-width) var(--tblr-border-style) var(--pts-dt-row-border);
  border-radius: var(--pts-dt-row-radius) 0 0 var(--pts-dt-row-radius);
}

.pts-customer-def-table tbody td:last-child {
  border-right: var(--tblr-border-width) var(--tblr-border-style) var(--pts-dt-row-border);
  border-radius: 0 var(--pts-dt-row-radius) var(--pts-dt-row-radius) 0;
}

.pts-customer-def-table tbody tr:nth-child(odd) td {
  background-color: var(--pts-dt-row-bg-alt);
}

.pts-customer-def-row {
  cursor: pointer;
}

.pts-customer-def-row:hover td {
  background-color: var(--pts-dt-row-hover);
  border-color: var(--pts-dt-row-border-hover);
}

.pts-customer-def-row.is-selected td {
  background: color-mix(in srgb, var(--tblr-primary) 16%, var(--tblr-bg-surface));
}

.pts-customer-def-delete-box {
  padding: 0.75rem;
  border-radius: var(--tblr-border-radius);
  border: 1px solid color-mix(in srgb, var(--tblr-danger) 28%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-danger) 8%, var(--tblr-bg-surface));
}

.pts-customer-form-sections {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.pts-customer-form-section {
  padding: 0.8rem 0.85rem;
  border: 1px solid var(--tblr-border-color);
  border-radius: calc(var(--tblr-border-radius) + 0.1rem);
  background: color-mix(in srgb, var(--tblr-bg-surface) 94%, var(--tblr-primary) 6%);
}

/* Accommodation / manage detail: content sits on the panel surface */
.pts-manage-content-detail .pts-customer-form-section {
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
}

.pts-acc-edit-stack {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.pts-acc-edit-stack > .pts-manage-section {
  margin: 0;
}

.pts-acc-rooms-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
}

.pts-acc-rooms-metric {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.1rem;
  min-width: 0;
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--tblr-border-color);
  border-radius: var(--tblr-border-radius);
  background: var(--tblr-bg-surface);
}

.pts-acc-rooms-metric .subheader {
  margin: 0;
  margin-bottom: 0.15rem;
}

.pts-acc-rooms-metric-label {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.pts-acc-rooms-metric-label .icon {
  width: 0.95rem;
  height: 0.95rem;
  flex-shrink: 0;
  opacity: 0.85;
}

.pts-acc-rooms-metric .h3 {
  font-size: 1.25rem;
  line-height: 1.15;
  font-variant-numeric: tabular-nums;
}

.pts-acc-feature-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
  text-align: center;
  margin-bottom: 0.5rem;
}

.pts-acc-feature-label-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 0.85rem;
  border: 1.5px solid color-mix(in srgb, var(--tblr-primary, #206bc4) 35%, var(--tblr-border-color, #d9dbe1));
  background: color-mix(in srgb, var(--tblr-primary, #206bc4) 8%, transparent);
  color: var(--tblr-primary, #206bc4);
  box-sizing: border-box;
}

.pts-acc-feature-label-icon .icon {
  width: 2rem;
  height: 2rem;
  flex-shrink: 0;
  opacity: 1;
}

.pts-acc-feature-label-text {
  font-size: 0.8125rem;
  line-height: 1.25;
}

.pts-acc-feature-label .icon {
  width: 2rem;
  height: 2rem;
  flex-shrink: 0;
  opacity: 1;
}

.pts-acc-feature-input-number {
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.pts-acc-feature-wifi .form-control {
  width: 100%;
}

.pts-acc-features-grid {
  --bs-gutter-y: 1.5rem;
  --tblr-gutter-y: 1.5rem;
  row-gap: 1.5rem;
}

.pts-customer-form-section-head {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.65rem;
  color: color-mix(in srgb, var(--tblr-primary) 70%, var(--tblr-body-color));
}

.pts-customer-form-section-head .icon {
  width: 1rem;
  height: 1rem;
}

.icon-inline {
  width: 1rem;
  height: 1rem;
}

@media (max-width: 991.98px) {
  .pts-customer-def-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pts-customer-def-search-wrap {
    grid-column: 1 / -1;
  }

  .pts-customer-def-panels {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .pts-customer-modal-definition,
  .pts-customer-modal-form,
  .pts-customer-modal-sm,
  .pts-customer-modal-assign,
  .pts-customer-modal-manage {
    width: 100%;
  }

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

  .pts-customer-modal-footer-actions {
    justify-content: stretch;
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .pts-customer-modal-footer-actions .btn,
  .pts-modal-footer-start .btn,
  .pts-modal-footer-end .btn {
    flex: 1 1 auto;
  }

  .pts-modal-footer-start,
  .pts-modal-footer-end {
    width: 100%;
    margin-left: 0;
  }

  .pts-modal-footer-start {
    flex-direction: column;
  }

  .modal-footer:not(.pts-theme-footer) {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .modal-footer:not(.pts-theme-footer) > .btn {
    width: 100%;
  }
}

/* —— Drag reorder (theme-aware) —— */
.pts-nav-row-reorderable {
  cursor: grab;
}

.pts-nav-row-reorderable.pts-row-dragging,
.pts-nav-row-reorderable.pts-row-dragging * {
  cursor: grabbing;
}

.pts-nav-list-dragging {
  user-select: none;
}

.pts-row-dragging {
  position: relative;
  z-index: 4;
  opacity: 1;
}

.pts-manage-nav-row {
  display: flex;
  align-items: stretch;
  gap: 0.15rem;
}

.pts-manage-nav-row .pts-manage-drag-handle {
  align-self: center;
  flex: 0 0 auto;
  margin-inline-start: 0.05rem;
  z-index: 2;
  pointer-events: auto !important;
  color: var(--tblr-secondary, #667382);
  cursor: grab;
  touch-action: none;
  user-select: none;
}

.pts-manage-nav-row-reorderable {
  cursor: default;
  user-select: none;
  touch-action: none;
}

.pts-manage-nav-row .pts-manage-nav-link,
.pts-manage-nav-row .pts-manage-nav-item {
  flex: 1 1 auto;
  min-width: 0;
  -webkit-user-drag: none;
}

.pts-manage-nav-list-dragging .pts-manage-nav-link {
  pointer-events: none;
}

.pts-manage-nav-row-reorderable.pts-row-dragging {
  z-index: 5;
  cursor: grabbing;
}

.pts-manage-nav-row-reorderable.pts-row-dragging .pts-manage-nav-link,
.pts-manage-nav-row-reorderable.pts-row-dragging .pts-manage-nav-button,
.pts-manage-nav-row-reorderable.pts-row-dragging .pts-manage-nav-item {
  background: var(--tblr-primary-lt) !important;
  border-color: color-mix(in srgb, var(--tblr-primary) 50%, var(--tblr-border-color)) !important;
  color: var(--tblr-primary) !important;
  box-shadow:
    0 12px 28px -14px color-mix(in srgb, var(--tblr-primary) 50%, transparent),
    0 0 0 2px color-mix(in srgb, var(--tblr-primary) 20%, transparent);
  transform: translateY(-1px);
  transition: none;
}

.pts-manage-nav-row-reorderable.pts-row-drag-over .pts-manage-nav-link,
.pts-manage-nav-row-reorderable.pts-row-drag-over .pts-manage-nav-button,
.pts-manage-nav-row-reorderable.pts-row-drag-over .pts-manage-nav-item {
  background: color-mix(in srgb, var(--tblr-primary) 8%, var(--tblr-bg-surface)) !important;
  border-color: color-mix(in srgb, var(--tblr-primary) 28%, var(--tblr-border-color)) !important;
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--tblr-primary) 22%, transparent);
}

.pts-manage-nav-list-dragging .pts-manage-nav-row:not(.pts-row-dragging) {
  opacity: 0.76;
}

.pts-manage-nav-row-reorderable.pts-row-dragging .pts-drag-handle,
.pts-manage-nav-row-reorderable.pts-row-drag-over .pts-drag-handle {
  color: var(--tblr-primary);
}

/* Sidebar nav drag */
.pts-sidebar .pts-nav-row-reorderable.pts-row-dragging > .nav-link,
.pts-sidebar .pts-nav-row-reorderable.pts-row-dragging > .pts-sidebar-branch-toggle,
.pts-sidebar .pts-nav-row-reorderable.pts-row-dragging.pts-sidebar-branch > .pts-sidebar-branch-toggle {
  color: #fff !important;
  background: color-mix(in srgb, var(--tblr-primary) 24%, transparent) !important;
  border-color: color-mix(in srgb, var(--tblr-primary) 52%, transparent) !important;
  box-shadow:
    0 14px 30px -16px color-mix(in srgb, var(--tblr-primary) 70%, #000),
    0 0 0 2px color-mix(in srgb, var(--tblr-primary) 28%, transparent),
    inset 3px 0 0 var(--tblr-primary);
}

.pts-sidebar .pts-nav-row-reorderable.pts-row-drag-over > .nav-link,
.pts-sidebar .pts-nav-row-reorderable.pts-row-drag-over > .pts-sidebar-branch-toggle {
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent) !important;
  border-color: color-mix(in srgb, var(--tblr-primary) 34%, transparent) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tblr-primary) 40%, transparent);
}

.pts-sidebar .pts-nav-list-dragging .pts-nav-row:not(.pts-row-dragging) {
  opacity: 0.58;
}

.pts-sidebar .pts-nav-row-reorderable.pts-row-dragging .nav-link-icon,
.pts-sidebar .pts-nav-row-reorderable.pts-row-drag-over .nav-link-icon {
  color: color-mix(in srgb, var(--tblr-primary) 78%, #fff);
  background: color-mix(in srgb, var(--tblr-primary) 24%, transparent);
  border-color: color-mix(in srgb, var(--tblr-primary) 36%, transparent);
}

/* Topbar nav drag */
.pts-topbar .pts-nav-row-reorderable {
  touch-action: none;
  cursor: grab;
  user-select: none;
}

.pts-topbar .pts-nav-row-reorderable > .nav-link,
.pts-topbar .pts-nav-row-reorderable > .dropdown-toggle {
  -webkit-user-drag: none;
  user-select: none;
}

.pts-topbar .pts-nav-row-reorderable.pts-row-dragging > .nav-link,
.pts-topbar .pts-nav-row-reorderable.pts-row-dragging > .dropdown-toggle {
  color: var(--tblr-primary) !important;
  background: var(--tblr-primary-lt) !important;
  border-color: color-mix(in srgb, var(--tblr-primary) 34%, transparent) !important;
  box-shadow:
    0 10px 24px -16px color-mix(in srgb, var(--tblr-primary) 55%, transparent),
    inset 0 -2px 0 var(--tblr-primary);
}

.pts-topbar .pts-nav-row-reorderable.pts-row-drag-over > .nav-link,
.pts-topbar .pts-nav-row-reorderable.pts-row-drag-over > .dropdown-toggle {
  background: color-mix(in srgb, var(--tblr-primary) 10%, transparent) !important;
  border-color: color-mix(in srgb, var(--tblr-primary) 24%, transparent) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tblr-primary) 28%, transparent);
}

.pts-topbar .pts-nav-list-dragging .pts-nav-row:not(.pts-row-dragging) {
  opacity: 0.72;
}

.pts-topbar .pts-nav-row-reorderable.pts-row-dragging .nav-link-icon,
.pts-topbar .pts-nav-row-reorderable.pts-row-drag-over .nav-link-icon {
  color: var(--tblr-primary);
}

/* Topbar dropdown sub-items */
.pts-topbar .pts-nav-dropdown-row.pts-row-dragging .dropdown-item {
  color: var(--tblr-primary) !important;
  background: var(--tblr-primary-lt) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tblr-primary) 26%, transparent);
}

.pts-topbar .pts-nav-dropdown-row.pts-row-drag-over .dropdown-item {
  background: color-mix(in srgb, var(--tblr-primary) 8%, var(--tblr-bg-surface)) !important;
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--tblr-primary) 20%, transparent);
}

.pts-nav-list-dragging .pts-nav-dropdown-row:not(.pts-row-dragging) {
  opacity: 0.76;
}

/* Table row drag */
tr.pts-row-dragging {
  background: color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-bg-surface)) !important;
  box-shadow: inset 3px 0 0 var(--tblr-primary);
}

tr.pts-row-dragging td {
  background: transparent !important;
  color: var(--tblr-primary);
}

tr.pts-row-dragging .pts-drag-handle {
  color: var(--tblr-primary);
}

.pts-manage-nav-item .badge {
  margin-left: auto;
  flex: 0 0 auto;
}

.pts-cat-count {
  min-width: 1.55rem;
  justify-content: center;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  color: var(--tblr-primary) !important;
  background: color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-bg-surface-secondary)) !important;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 18%, var(--tblr-border-color));
}

.pts-manage-nav-item.active .pts-cat-count {
  color: var(--tblr-primary-fg, #fff) !important;
  background: var(--tblr-primary) !important;
  border-color: var(--tblr-primary);
}

a.pts-manage-nav-item {
  color: inherit;
  text-decoration: none;
}

a.pts-manage-nav-item:hover {
  color: inherit;
  text-decoration: none;
}

/* Development settings modal */
.pts-dev-settings-dialog {
  --pts-dev-settings-width: 34rem;
  max-width: min(var(--pts-dev-settings-width), calc(100vw - 1.5rem));
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.pts-dev-settings-dialog .modal-content {
  border: 1px solid var(--tblr-border-color);
  background: var(--tblr-bg-surface);
  box-shadow: 0 18px 48px -24px color-mix(in srgb, var(--tblr-primary) 35%, transparent);
}

.pts-dev-settings-dialog .modal-header {
  align-items: flex-start;
  padding: 1rem 1.15rem;
}

.pts-dev-settings-dialog .modal-title {
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}

.pts-dev-settings-body {
  padding: 0.85rem 1.15rem 1.15rem;
}

.pts-dev-pref-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  border: 0;
  border-radius: 0;
  overflow: visible;
  background: transparent;
}

.pts-dev-pref-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 1rem 1.05rem;
  border: 1px solid var(--tblr-border-color);
  border-radius: 0.5rem;
  background: var(--tblr-bg-surface);
}

.pts-dev-pref-row:last-child {
  border-bottom: 1px solid var(--tblr-border-color);
}

.pts-dev-pref-copy {
  min-width: 0;
  flex: 1 1 auto;
}

.pts-dev-pref-label {
  display: block;
  margin: 0;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--tblr-body-color);
  cursor: pointer;
}

.pts-dev-pref-hint {
  margin-top: 0.2rem;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--tblr-secondary);
}

.pts-dev-pref-control {
  flex: 0 0 auto;
  padding-top: 0.1rem;
}

.pts-dev-pref-control .form-check-input {
  width: 2.4rem;
  height: 1.25rem;
  cursor: pointer;
}

.pts-dev-pref-section {
  margin-top: 1rem;
}

.pts-dev-progress-plan-row {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 0.7rem 0;
  border-bottom: 1px solid var(--tblr-border-color, rgba(98, 105, 118, 0.16));
}

.pts-dev-progress-plan-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.pts-dev-progress-plan-row:first-child {
  padding-top: 0;
}

.pts-dev-progress-plan-pct {
  flex: 0 0 3.25rem;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  font-size: 0.92rem;
  line-height: 1.35;
  color: var(--tblr-primary);
}

.pts-dev-progress-plan-label {
  font-weight: 600;
  font-size: 0.92rem;
  line-height: 1.35;
  color: var(--tblr-body-color);
}

.pts-dev-progress-plan-hint {
  margin-top: 0.15rem;
  color: var(--tblr-secondary);
  font-size: 0.82rem;
  line-height: 1.4;
}

.pts-dev-settings-dialog .modal-footer {
  padding: 0.75rem 1.15rem;
  gap: 0.5rem;
}

.pts-dev-settings-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}

.pts-dev-settings-footer-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: auto;
}

/* Yeni Geliştirme — sabit iki sütun modal */
.pts-dev-create-dialog {
  --pts-dev-create-width: 56rem;
  --pts-dev-create-height: 28rem;
  max-width: min(var(--pts-dev-create-width), calc(100vw - 1.5rem));
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.pts-dev-create-dialog .pts-dev-create-content {
  height: min(var(--pts-dev-create-height), calc(100vh - 3rem));
  display: flex;
  flex-direction: column;
  border: 1px solid var(--tblr-border-color);
  background: var(--tblr-bg-surface);
  box-shadow: 0 18px 48px -24px color-mix(in srgb, var(--tblr-primary) 35%, transparent);
}

.pts-dev-create-dialog .modal-header,
.pts-dev-create-dialog .modal-footer {
  flex: 0 0 auto;
}

.pts-dev-create-body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0.85rem 1.15rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.pts-dev-create-grid {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.pts-dev-create-left,
.pts-dev-create-right {
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.pts-dev-create-request {
  flex: 1 1 auto;
  min-height: 0;
  resize: none;
  font-family: inherit;
  line-height: 1.45;
}

.pts-dev-create-drop {
  flex: 1 1 auto;
  min-height: 7rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 1rem;
  border: 1.5px dashed var(--tblr-border-color);
  border-radius: 0.5rem;
  background: color-mix(in srgb, var(--tblr-bg-surface) 92%, var(--tblr-primary) 8%);
  cursor: pointer;
  text-align: center;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.pts-dev-create-drop:hover,
.pts-dev-create-drop.is-dragging {
  border-color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-bg-surface) 85%, var(--tblr-primary) 15%);
}

.pts-dev-create-drop-title {
  font-weight: 600;
  font-size: 0.95rem;
}

.pts-dev-create-drop-hint {
  font-size: 0.78rem;
  color: var(--tblr-secondary);
  max-width: 16rem;
}

.pts-dev-create-files {
  list-style: none;
  margin: 0.65rem 0 0;
  padding: 0;
  max-height: 6.5rem;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.pts-dev-create-files li {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 0.5rem;
  padding: 0.35rem 0.45rem;
  border: 1px solid var(--tblr-border-color);
  border-radius: 0.35rem;
  background: var(--tblr-bg-surface);
  color: var(--tblr-body-color);
  font-size: 0.82rem;
}

.pts-dev-create-file-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-dev-create-file-size {
  color: var(--tblr-secondary);
  white-space: nowrap;
}

.pts-dev-create-footer {
  padding: 0.75rem 1.15rem;
}

@media (max-width: 720px) {
  .pts-dev-create-dialog .pts-dev-create-content {
    height: min(36rem, calc(100vh - 2rem));
  }

  .pts-dev-create-grid {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 1fr;
  }
}

/* Modules · Inspect modal — balanced content layout */
.pts-module-inspect-dialog {
  --pts-module-inspect-width: 56rem;
  max-width: min(var(--pts-module-inspect-width), calc(100vw - 1.5rem));
  width: 100%;
  height: auto;
  max-height: calc(100vh - 2rem);
  margin: 1rem auto;
}

.pts-module-inspect-dialog .modal-content {
  height: auto;
  max-height: calc(100vh - 2rem);
  display: flex;
  flex-direction: column;
  border: 1px solid var(--tblr-border-color);
  background: var(--tblr-bg-surface);
  box-shadow: 0 18px 48px -24px color-mix(in srgb, var(--tblr-primary) 35%, transparent);
}

.pts-module-inspect-dialog .modal-header {
  flex: 0 0 auto;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.pts-module-inspect-dialog .modal-footer {
  flex: 0 0 auto;
  padding-top: 0.65rem;
  padding-bottom: 0.75rem;
}

.pts-module-inspect-body {
  flex: 0 1 auto;
  min-height: 0;
  overflow: visible;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.pts-module-inspect-layout {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.pts-module-inspect-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 0.85rem;
}

.pts-module-inspect-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
  align-items: stretch;
  flex: 1 1 auto;
  min-width: 0;
}

.pts-module-inspect-metric {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.15rem;
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--tblr-border-color);
  border-radius: var(--tblr-border-radius);
  background: color-mix(in srgb, var(--tblr-bg-surface) 88%, var(--tblr-primary) 12%);
  min-width: 0;
}

.pts-module-inspect-metric .subheader {
  margin: 0;
  font-size: 0.68rem;
  line-height: 1.25;
}

.pts-module-inspect-metric strong {
  font-size: 1.1rem;
  line-height: 1.15;
  font-variant-numeric: tabular-nums;
}

.pts-module-inspect-status {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  margin-left: auto;
}

.pts-module-inspect-saved {
  flex: 0 0 auto;
  margin-left: 0;
}

.pts-module-inspect-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.85rem 1.15rem;
  align-items: stretch;
}

.pts-module-inspect-fields,
.pts-module-inspect-side {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 0;
}

.pts-module-inspect-fields .form-label,
.pts-module-inspect-side .form-label {
  margin-bottom: 0.15rem;
}

.pts-module-inspect-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
}

.pts-module-inspect-description {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

.pts-module-inspect-description textarea {
  flex: 1 1 auto;
  min-height: 6.5rem;
  height: auto;
  resize: none;
}

.pts-module-inspect-records {
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  min-height: 0;
  max-height: 8.5rem;
}

.pts-module-arch-records {
  overflow: auto;
  margin-bottom: 0;
}

.pts-module-inspect-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
}

.pts-module-inspect-footer-left {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.pts-module-inspect-footer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
  margin-left: auto;
}

@media (max-width: 900px) {
  .pts-module-inspect-grid {
    grid-template-columns: 1fr;
  }

  .pts-module-inspect-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pts-module-inspect-dialog {
    max-height: calc(100vh - 1rem);
  }

  .pts-module-inspect-dialog .modal-content {
    max-height: calc(100vh - 1rem);
  }

  .pts-module-inspect-body {
    overflow: auto;
  }

  .pts-module-inspect-description textarea {
    min-height: 5rem;
    flex: 0 0 auto;
  }
}

@media (max-width: 720px) {
  .pts-module-inspect-dialog {
    margin: 0.5rem auto;
  }

  .pts-module-inspect-pair {
    grid-template-columns: 1fr;
  }

  .pts-module-inspect-status {
    margin-left: 0;
  }

  .pts-module-inspect-footer {
    flex-direction: column;
    align-items: stretch;
  }

  .pts-module-inspect-footer-actions {
    margin-left: 0;
    justify-content: stretch;
  }

  .pts-module-inspect-footer-actions .btn {
    flex: 1 1 auto;
  }
}

/* Versions · Updates modal — fixed size */
.pts-version-updates-dialog {
  --pts-version-updates-width: 52rem;
  --pts-version-updates-height: min(36rem, calc(100vh - 2.5rem));
  max-width: min(var(--pts-version-updates-width), calc(100vw - 1.5rem));
  width: 100%;
  height: var(--pts-version-updates-height);
  margin: 1rem auto;
}

.pts-version-updates-dialog .modal-content {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.pts-version-updates-dialog .modal-header,
.pts-version-updates-dialog .modal-footer {
  flex: 0 0 auto;
}

.pts-version-updates-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.pts-version-updates-table {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

.pts-vehicle-make-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: var(--tblr-border-radius);
  background: var(--tblr-bg-surface-secondary);
  border: 1px solid var(--tblr-border-color);
}

.pts-vehicle-make-mark img {
  width: 1.85rem;
  height: 1.85rem;
  object-fit: contain;
}

[data-bs-theme="dark"] .pts-vehicle-make-mark img {
  filter: invert(1);
}

.pts-vehicle-srvc-ready {
  background: #198754;
  color: #fff;
}

.pts-vehicle-srvc-repair {
  background: #dc3545;
  color: #fff;
}

.pts-vehicle-srvc-ready-row {
  --pts-vehicle-srvc-tint: rgba(25, 135, 84, 0.08);
  background-color: var(--pts-vehicle-srvc-tint);
}

.pts-vehicle-srvc-repair-row {
  --pts-vehicle-srvc-tint: rgba(220, 53, 69, 0.1);
  background-color: var(--pts-vehicle-srvc-tint);
}

/* Platform status gate (platforms.status ≠ active) */
.pts-maintenance {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: var(--tblr-bg-surface);
  color: var(--tblr-body-color);
  text-align: center;
}

.pts-maintenance-inner {
  max-width: 26rem;
}

.pts-maintenance-brand {
  letter-spacing: 0.2em;
  font-weight: 700;
  font-size: 0.75rem;
  color: var(--tblr-primary);
  margin-bottom: 1rem;
}

.pts-maintenance-title {
  margin: 0 0 0.75rem;
  font-size: 1.75rem;
}

.pts-maintenance-body {
  margin: 0 auto;
  color: var(--tblr-secondary);
  line-height: 1.6;
}

.pts-maintenance-badge {
  display: inline-block;
  margin-top: 1.25rem;
  padding: 0.35rem 0.75rem;
  border: 1px solid var(--tblr-border-color);
  border-radius: 999px;
  color: var(--tblr-primary);
  font-size: 0.75rem;
}

.pts-maintenance-host {
  margin-top: 1.25rem;
  font-size: 0.75rem;
  color: var(--tblr-secondary);
}

/* Accommodation Planning board */
.pts-acc-plan {
  display: grid;
  grid-template-columns: minmax(16rem, 22rem) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  min-height: 0;
  flex: 1 1 auto;
}

@media (max-width: 991.98px) {
  .pts-acc-plan {
    grid-template-columns: 1fr;
  }
}

.pts-acc-plan-pool,
.pts-acc-plan-houses {
  min-width: 0;
}

.pts-acc-plan-pool {
  position: sticky;
  top: 0.5rem;
  padding: 0.85rem;
  border: 1px solid var(--tblr-border-color);
  border-radius: 1rem;
  background: var(--tblr-bg-surface, #fff);
}

.pts-acc-plan-pool-head {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin-bottom: 0.75rem;
}

.pts-acc-plan-heading {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0 0 0.75rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--tblr-body-color);
}

.pts-acc-plan-pool-head .pts-acc-plan-heading {
  margin-bottom: 0;
}

.pts-acc-plan-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.5rem;
  padding: 0.1rem 0.4rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
  color: var(--tblr-primary);
  font-size: 0.75rem;
  font-weight: 700;
}

.pts-acc-plan-search {
  max-width: none;
  flex: 1 1 0;
  width: 100%;
  min-width: 0;
}

.pts-acc-plan-people,
.pts-acc-plan-chips {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.pts-acc-plan-person {
  border: 1px solid var(--tblr-border-color);
  border-radius: 0.85rem;
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, #f6f8fb) 70%, #fff);
  overflow: hidden;
}

.pts-acc-plan-person.is-open {
  border-color: color-mix(in srgb, var(--tblr-primary) 35%, var(--tblr-border-color));
}

.pts-acc-plan-person-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem;
  padding: 0.65rem 0.7rem;
}

.pts-acc-plan-person-copy {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.pts-acc-plan-person-copy strong {
  font-size: 0.9rem;
  font-weight: 650;
  line-height: 1.25;
}

.pts-acc-plan-person-copy span {
  font-size: 0.75rem;
  color: var(--tblr-secondary);
}

.pts-acc-plan-house-picks {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0 0.55rem 0.55rem;
}

.pts-acc-plan-house-pick {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.1rem;
  width: 100%;
  margin: 0;
  padding: 0.5rem 0.65rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 22%, var(--tblr-border-color));
  border-radius: 0.7rem;
  background: #fff;
  text-align: left;
  cursor: pointer;
  font: inherit;
  color: inherit;
}

.pts-acc-plan-house-pick:hover:not(:disabled) {
  background: color-mix(in srgb, var(--tblr-primary) 8%, #fff);
}

.pts-acc-plan-house-pick:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.pts-acc-plan-house-pick-label {
  font-size: 0.84rem;
  font-weight: 650;
}

.pts-acc-plan-house-pick-meta {
  font-size: 0.72rem;
  color: var(--tblr-secondary);
}

.pts-acc-plan-house-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
  gap: 0.75rem;
}

.pts-acc-plan-house {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  min-height: 8.5rem;
  padding: 0.85rem;
  border: 1px solid var(--tblr-border-color);
  border-radius: 1rem;
  background: var(--tblr-bg-surface, #fff);
}

.pts-acc-plan-house.is-over {
  border-color: color-mix(in srgb, var(--tblr-danger) 45%, var(--tblr-border-color));
}

.pts-acc-plan-house-head {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.pts-acc-plan-house-title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.3;
}

.pts-acc-plan-house-occ {
  font-size: 0.75rem;
  font-weight: 650;
  color: var(--tblr-secondary);
}

.pts-acc-plan-chip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem;
  padding: 0.45rem 0.5rem 0.45rem 0.65rem;
  border-radius: 0.7rem;
  background: color-mix(in srgb, var(--tblr-primary) 8%, #fff);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 16%, var(--tblr-border-color));
}

.pts-acc-plan-chip-copy {
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  min-width: 0;
}

.pts-acc-plan-chip-copy strong {
  font-size: 0.84rem;
  font-weight: 650;
  line-height: 1.2;
}

.pts-acc-plan-chip-copy small {
  font-size: 0.7rem;
  color: var(--tblr-secondary);
}

.pts-acc-plan-chip-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.55rem;
  height: 1.55rem;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0.5rem;
  background: transparent;
  color: var(--tblr-secondary);
  font-size: 1.15rem;
  line-height: 1;
  cursor: pointer;
}

.pts-acc-plan-chip-remove:hover:not(:disabled) {
  background: color-mix(in srgb, var(--tblr-danger) 12%, #fff);
  color: var(--tblr-danger);
}

.pts-acc-plan-chip-remove:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.pts-acc-plan-empty {
  font-size: 0.84rem;
  color: var(--tblr-secondary);
}


/* —— Accommodation Plan Analysis —— */
.pts-acc-analysis-detail {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-height: 0;
}

.pts-acc-analysis-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-items: center;
}

.pts-acc-analysis-operator {
  width: auto;
  min-width: 14rem;
  max-width: 100%;
  min-height: 2.35rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 16%, var(--tblr-border-color));
  border-radius: calc(var(--tblr-border-radius) + 0.1rem);
  background: var(--tblr-bg-surface);
}

.pts-acc-analysis-layout {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
}

.pts-acc-analysis-kicker {
  margin: 0 0 0.2rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--tblr-primary) 72%, var(--tblr-secondary));
}

.pts-acc-analysis-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1.35fr);
  gap: 1rem;
  padding: 1.05rem 1.15rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 14%, var(--tblr-border-color));
  border-radius: calc(var(--tblr-border-radius) + 0.28rem);
  background:
    radial-gradient(circle at 12% 18%, color-mix(in srgb, var(--tblr-primary) 14%, transparent), transparent 42%),
    linear-gradient(155deg, color-mix(in srgb, var(--tblr-primary) 6%, var(--tblr-bg-surface)) 0%, var(--tblr-bg-surface) 58%);
  box-shadow: 0 18px 36px -28px color-mix(in srgb, var(--tblr-primary) 48%, transparent);
}

.pts-acc-analysis-hero-visual {
  display: flex;
  gap: 1rem;
  align-items: center;
  min-width: 0;
}

.pts-acc-analysis-ring {
  position: relative;
  width: 8.5rem;
  height: 8.5rem;
  flex: 0 0 auto;
}

.pts-acc-analysis-ring-svg {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.pts-acc-analysis-ring-track,
.pts-acc-analysis-ring-value {
  fill: none;
  stroke-width: 10;
}

.pts-acc-analysis-ring-track {
  stroke: color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-border-color));
}

.pts-acc-analysis-ring-value {
  stroke-linecap: round;
  transition: stroke-dashoffset 0.45s ease;
  stroke: var(--tblr-primary);
}

.pts-acc-analysis-ring.is-cool .pts-acc-analysis-ring-value { stroke: var(--tblr-info, #4299e1); }
.pts-acc-analysis-ring.is-mid .pts-acc-analysis-ring-value { stroke: var(--tblr-primary); }
.pts-acc-analysis-ring.is-hot .pts-acc-analysis-ring-value { stroke: var(--tblr-warning, #f76707); }
.pts-acc-analysis-ring.is-full .pts-acc-analysis-ring-value { stroke: var(--tblr-success, #2fb344); }

.pts-acc-analysis-ring-center {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  pointer-events: none;
}

.pts-acc-analysis-ring-center strong {
  font-size: 1.45rem;
  line-height: 1.1;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
}

.pts-acc-analysis-ring-center span {
  font-size: 0.68rem;
  font-weight: 650;
  color: var(--tblr-secondary);
}

.pts-acc-analysis-hero-title {
  margin: 0 0 0.35rem;
  font-size: 1.28rem;
  font-weight: 760;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

.pts-acc-analysis-hero-text {
  margin: 0 0 0.75rem;
  font-size: 0.86rem;
  color: color-mix(in srgb, var(--tblr-body-color) 78%, var(--tblr-secondary));
  line-height: 1.45;
  max-width: 34rem;
}

.pts-acc-analysis-hero-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
  margin: 0;
}

.pts-acc-analysis-hero-meta div {
  padding: 0.45rem 0.55rem;
  border-radius: calc(var(--tblr-border-radius) + 0.05rem);
  background: color-mix(in srgb, var(--tblr-bg-surface) 70%, transparent);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-border-color));
}

.pts-acc-analysis-hero-meta dt {
  margin: 0;
  font-size: 0.62rem;
  font-weight: 650;
  color: var(--tblr-secondary);
}

.pts-acc-analysis-hero-meta dd {
  margin: 0.12rem 0 0;
  font-size: 1rem;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}

.pts-acc-analysis-kpi-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
  align-content: start;
}

.pts-acc-analysis-kpi {
  --pts-kpi-accent: var(--tblr-primary);
  position: relative;
  overflow: hidden;
  padding: 0.75rem 0.8rem;
  border-radius: calc(var(--tblr-border-radius) + 0.12rem);
  border: 1px solid color-mix(in srgb, var(--pts-kpi-accent) 16%, var(--tblr-border-color));
  background:
    linear-gradient(160deg, color-mix(in srgb, var(--pts-kpi-accent) 8%, var(--tblr-bg-surface)) 0%, var(--tblr-bg-surface) 70%);
  box-shadow: 0 10px 22px -18px color-mix(in srgb, var(--pts-kpi-accent) 50%, transparent);
}

@media (prefers-reduced-motion: no-preference) {
  .pts-acc-analysis-kpi {
    opacity: 0;
    animation: pts-acc-analysis-enter 0.35s ease forwards;
    animation-delay: calc(var(--i, 0) * 40ms);
  }
}

@keyframes pts-acc-analysis-enter {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}

.pts-acc-analysis-kpi.is-primary { --pts-kpi-accent: var(--tblr-primary); }
.pts-acc-analysis-kpi.is-info { --pts-kpi-accent: var(--tblr-info, #4299e1); }
.pts-acc-analysis-kpi.is-success { --pts-kpi-accent: var(--tblr-success, #2fb344); }
.pts-acc-analysis-kpi.is-warning { --pts-kpi-accent: var(--tblr-warning, #f76707); }
.pts-acc-analysis-kpi.is-danger { --pts-kpi-accent: var(--tblr-danger, #d63939); }

.pts-acc-analysis-kpi-top {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0.35rem;
}

.pts-acc-analysis-kpi-icon {
  display: inline-flex;
  color: var(--pts-kpi-accent);
}

.pts-acc-analysis-kpi-icon .icon {
  width: 0.95rem !important;
  height: 0.95rem !important;
  stroke: currentColor !important;
}

.pts-acc-analysis-kpi-label {
  font-size: 0.7rem;
  font-weight: 650;
  color: var(--tblr-secondary);
}

.pts-acc-analysis-kpi-value {
  margin: 0;
  font-size: 1.45rem;
  font-weight: 780;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  color: color-mix(in srgb, var(--pts-kpi-accent) 55%, var(--tblr-body-color));
}

.pts-acc-analysis-kpi-value small {
  margin-left: 0.15rem;
  font-size: 0.78rem;
  font-weight: 700;
  opacity: 0.8;
}

.pts-acc-analysis-mid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 1rem;
}

.pts-acc-analysis-panel,
.pts-acc-analysis-insights,
.pts-acc-analysis-breakdown {
  padding: 0.95rem 1rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-border-color));
  border-radius: calc(var(--tblr-border-radius) + 0.18rem);
  background: var(--tblr-bg-surface);
  box-shadow: 0 12px 26px -22px color-mix(in srgb, var(--tblr-primary) 40%, transparent);
}

.pts-acc-analysis-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.pts-acc-analysis-panel-title {
  margin: 0;
  font-size: 1.02rem;
  font-weight: 720;
  letter-spacing: -0.015em;
  line-height: 1.25;
}

.pts-acc-analysis-panel-meta {
  font-size: 0.72rem;
  font-weight: 650;
  color: var(--tblr-secondary);
  white-space: nowrap;
}

.pts-acc-analysis-stack {
  display: flex;
  width: 100%;
  height: 0.85rem;
  overflow: hidden;
  border-radius: 999px;
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, #f1f5f9) 80%, var(--tblr-border-color));
  margin-bottom: 0.85rem;
}

.pts-acc-analysis-stack-seg {
  min-width: 0;
  height: 100%;
  transition: width 0.3s ease;
}

.pts-acc-analysis-stack-seg.is-empty { background: color-mix(in srgb, var(--tblr-danger, #d63939) 72%, #fff); }
.pts-acc-analysis-stack-seg.is-low { background: color-mix(in srgb, var(--tblr-warning, #f76707) 78%, #fff); }
.pts-acc-analysis-stack-seg.is-mid { background: color-mix(in srgb, var(--tblr-primary) 78%, #fff); }
.pts-acc-analysis-stack-seg.is-full { background: color-mix(in srgb, var(--tblr-success, #2fb344) 82%, #fff); }

.pts-acc-analysis-band-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}

.pts-acc-analysis-band-item {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  gap: 0.45rem;
  align-items: center;
  font-size: 0.8rem;
}

.pts-acc-analysis-band-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: var(--tblr-primary);
}

.pts-acc-analysis-band-item.is-empty .pts-acc-analysis-band-dot { background: var(--tblr-danger, #d63939); }
.pts-acc-analysis-band-item.is-low .pts-acc-analysis-band-dot { background: var(--tblr-warning, #f76707); }
.pts-acc-analysis-band-item.is-mid .pts-acc-analysis-band-dot { background: var(--tblr-primary); }
.pts-acc-analysis-band-item.is-full .pts-acc-analysis-band-dot { background: var(--tblr-success, #2fb344); }

.pts-acc-analysis-band-label { color: var(--tblr-body-color); }
.pts-acc-analysis-band-count { font-variant-numeric: tabular-nums; }
.pts-acc-analysis-band-share {
  min-width: 3rem;
  text-align: right;
  color: var(--tblr-secondary);
  font-variant-numeric: tabular-nums;
}

.pts-acc-analysis-insight-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}

.pts-acc-analysis-insight {
  padding: 0.7rem 0.75rem;
  border-radius: calc(var(--tblr-border-radius) + 0.08rem);
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 85%, transparent);
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, #f6f8fb) 55%, var(--tblr-bg-surface));
}

@media (prefers-reduced-motion: no-preference) {
  .pts-acc-analysis-insight {
    opacity: 0;
    animation: pts-acc-analysis-enter 0.35s ease forwards;
    animation-delay: calc(var(--i, 0) * 45ms);
  }
}

.pts-acc-analysis-insight h4 {
  margin: 0 0 0.25rem;
  font-size: 0.82rem;
  font-weight: 720;
}

.pts-acc-analysis-insight p {
  margin: 0;
  font-size: 0.76rem;
  line-height: 1.4;
  color: color-mix(in srgb, var(--tblr-body-color) 78%, var(--tblr-secondary));
}

.pts-acc-analysis-insight.is-success { border-color: color-mix(in srgb, var(--tblr-success, #2fb344) 28%, var(--tblr-border-color)); }
.pts-acc-analysis-insight.is-warning { border-color: color-mix(in srgb, var(--tblr-warning, #f76707) 30%, var(--tblr-border-color)); }
.pts-acc-analysis-insight.is-danger { border-color: color-mix(in srgb, var(--tblr-danger, #d63939) 30%, var(--tblr-border-color)); }
.pts-acc-analysis-insight.is-info { border-color: color-mix(in srgb, var(--tblr-info, #4299e1) 28%, var(--tblr-border-color)); }

.pts-acc-analysis-house-list {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.pts-acc-analysis-house-row {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr);
  gap: 0.65rem;
  padding: 0.7rem 0.75rem;
  border-radius: calc(var(--tblr-border-radius) + 0.1rem);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, #f8fafc) 35%, var(--tblr-bg-surface));
}

@media (prefers-reduced-motion: no-preference) {
  .pts-acc-analysis-house-row {
    opacity: 0;
    animation: pts-acc-analysis-enter 0.32s ease forwards;
    animation-delay: calc(var(--i, 0) * 28ms);
  }
}

.pts-acc-analysis-house-rank {
  font-size: 0.78rem;
  font-weight: 780;
  letter-spacing: 0.04em;
  color: color-mix(in srgb, var(--tblr-primary) 65%, var(--tblr-secondary));
  padding-top: 0.15rem;
}

.pts-acc-analysis-house-title-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
}

.pts-acc-analysis-house-name {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 720;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-acc-analysis-house-pct {
  font-variant-numeric: tabular-nums;
  font-size: 0.92rem;
}

.pts-acc-analysis-house-sub {
  margin: 0.15rem 0 0.4rem;
  font-size: 0.72rem;
  color: var(--tblr-secondary);
}

.pts-acc-analysis-house-bar {
  height: 0.38rem;
  margin: 0 0 0.45rem;
  border-radius: 999px;
  overflow: hidden;
  background: color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-bg-surface-secondary, #f1f5f9));
}

.pts-acc-analysis-house-bar .progress-bar {
  border-radius: 999px;
  background: var(--tblr-primary);
}

.pts-acc-analysis-house-bar .progress-bar.bg-success {
  background: var(--tblr-success, #2fb344) !important;
}

.pts-acc-analysis-house-bar .progress-bar.bg-warning {
  background: var(--tblr-warning, #f76707) !important;
}

.pts-acc-analysis-house-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.4rem;
  margin: 0;
}

.pts-acc-analysis-house-stats dt {
  margin: 0;
  font-size: 0.62rem;
  color: var(--tblr-secondary);
}

.pts-acc-analysis-house-stats dd {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.pts-acc-analysis-breakdowns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.pts-acc-analysis-breakdown-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.pts-acc-analysis-breakdown-label {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.78rem;
  margin-bottom: 0.28rem;
}

.pts-acc-analysis-breakdown-label span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-acc-analysis-breakdown-label strong {
  flex: 0 0 auto;
  font-variant-numeric: tabular-nums;
  color: var(--tblr-secondary);
  font-weight: 650;
}

.pts-acc-analysis-breakdown-bar {
  height: 0.32rem;
  margin: 0;
  border-radius: 999px;
  overflow: hidden;
  background: color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-bg-surface-secondary, #f1f5f9));
}

.pts-acc-analysis-breakdown-bar .progress-bar {
  border-radius: 999px;
  background: var(--tblr-primary);
}

.pts-acc-analysis-empty {
  font-size: 0.84rem;
  color: var(--tblr-secondary);
}

@media (max-width: 991.98px) {
  .pts-acc-analysis-hero,
  .pts-acc-analysis-mid,
  .pts-acc-analysis-breakdowns {
    grid-template-columns: 1fr;
  }

  .pts-acc-analysis-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .pts-acc-analysis-hero-visual {
    flex-direction: column;
    align-items: flex-start;
  }

  .pts-acc-analysis-kpi-grid,
  .pts-acc-analysis-insight-grid,
  .pts-acc-analysis-hero-meta {
    grid-template-columns: 1fr;
  }

  .pts-acc-analysis-operator {
    width: 100%;
    min-width: 0;
  }
}

/* Plan Analysis pie charts */
.pts-acc-analysis-pies {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.pts-acc-analysis-pie-card {
  padding: 0.95rem 1rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-border-color));
  border-radius: calc(var(--tblr-border-radius) + 0.18rem);
  background: var(--tblr-bg-surface);
  box-shadow: 0 12px 26px -22px color-mix(in srgb, var(--tblr-primary) 40%, transparent);
  min-width: 0;
}

.pts-acc-analysis-pie-body {
  display: grid;
  grid-template-columns: 8.5rem minmax(0, 1fr);
  gap: 0.85rem;
  align-items: center;
}

.pts-acc-analysis-pie-svg {
  width: 8.5rem;
  height: 8.5rem;
  flex: 0 0 auto;
}

.pts-acc-analysis-pie-slice {
  stroke: var(--tblr-bg-surface);
  stroke-width: 1.2;
  transition: opacity 0.15s ease;
}

.pts-acc-analysis-pie-slice:hover {
  opacity: 0.88;
}

.pts-acc-analysis-pie-hole {
  fill: var(--tblr-bg-surface);
}

.pts-acc-analysis-pie-total {
  fill: var(--tblr-body-color);
  font-size: 0.95rem;
  font-weight: 780;
  font-variant-numeric: tabular-nums;
}

.pts-acc-analysis-pie-legend {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.38rem;
  min-width: 0;
  max-height: 10.5rem;
  overflow: auto;
}

.pts-acc-analysis-pie-legend li {
  display: grid;
  grid-template-columns: 0.55rem minmax(0, 1fr) auto;
  gap: 0.4rem;
  align-items: center;
  font-size: 0.74rem;
}

.pts-acc-analysis-pie-swatch {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 2px;
  flex: 0 0 auto;
}

.pts-acc-analysis-pie-legend-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-acc-analysis-pie-legend strong {
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  color: var(--tblr-secondary);
  white-space: nowrap;
}

@media (max-width: 991.98px) {
  .pts-acc-analysis-pies {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .pts-acc-analysis-pie-body {
    grid-template-columns: 1fr;
    justify-items: center;
  }

  .pts-acc-analysis-pie-legend {
    width: 100%;
    max-height: none;
  }
}

/* —— Calendar module —— */
.pts-page-detail.pts-calendar-detail {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-height: 0;
  overflow: hidden;
}

.pts-calendar-toolbar,
.pts-page-detail.pts-calendar-detail > .text-danger {
  flex: 0 0 auto;
}

.pts-calendar-surface {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.pts-calendar-surface > .pts-calendar-month,
.pts-calendar-surface > .pts-calendar-day,
.pts-calendar-surface > .pts-calendar-week,
.pts-calendar-surface > .pts-calendar-year {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
}

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

.pts-calendar-meta {
  font-size: 0.8125rem;
}

.pts-calendar-views {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}

.pts-calendar-view-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 2.15rem;
}

.pts-calendar-view-btn .icon {
  width: 1rem;
  height: 1rem;
  stroke-width: 1.75;
}

.pts-calendar-view-btn.is-active {
  color: var(--tblr-primary);
  border-color: color-mix(in srgb, var(--tblr-primary) 45%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-bg-surface));
  font-weight: 600;
}

.pts-calendar-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
}

.pts-calendar-nav .btn,
.pts-calendar-period-select {
  min-height: 2.15rem;
}

.pts-calendar-period-field {
  margin: 0;
}

.pts-calendar-period-select {
  min-width: 7.5rem;
  width: auto;
  font-weight: 600;
}

.pts-calendar-surface-status {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 8rem;
  padding: 1rem;
}

.pts-calendar-empty {
  position: absolute;
  inset: auto 0.75rem 0.75rem;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 1rem 1.25rem;
  text-align: center;
  pointer-events: none;
  border: 1px dashed var(--tblr-border-color);
  border-radius: var(--tblr-border-radius);
  background: color-mix(in srgb, var(--tblr-bg-surface) 88%, transparent);
}

.pts-calendar-empty .empty-title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 650;
}

.pts-calendar-empty .empty-subtitle {
  margin: 0;
  font-size: 0.8125rem;
  max-width: 28rem;
}

.pts-calendar-empty .empty-action {
  pointer-events: auto;
  margin-top: 0.35rem;
}

.pts-calendar-month {
  border: 1px solid var(--tblr-border-color);
  border-radius: var(--tblr-border-radius);
  overflow: hidden;
  background: var(--tblr-bg-surface);
  display: flex;
  flex-direction: column;
}

.pts-calendar-weekdays {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.pts-calendar-grid {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  grid-auto-rows: 1fr;
}

.pts-calendar-weekday {
  padding: 0.55rem 0.4rem;
  text-align: center;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--tblr-secondary);
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, var(--tblr-bg-surface)) 88%, transparent);
  border-bottom: 1px solid var(--tblr-border-color);
}

.pts-calendar-cell {
  min-height: 0;
  height: 100%;
  padding: 0.35rem;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.25rem;
  border: 0;
  border-right: 1px solid var(--tblr-border-color);
  border-bottom: 1px solid var(--tblr-border-color);
  background: transparent;
  text-align: left;
  color: inherit;
  cursor: pointer;
}

.pts-calendar-cell:nth-child(7n) {
  border-right: 0;
}

.pts-calendar-cell.is-empty {
  cursor: default;
  background: color-mix(in srgb, var(--tblr-bg-surface-secondary, var(--tblr-bg-surface)) 55%, transparent);
}

.pts-calendar-cell.is-today {
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
}

.pts-calendar-cell.is-selected {
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--tblr-primary) 55%, transparent);
}

.pts-calendar-cell:not(.is-empty):hover {
  background: color-mix(in srgb, var(--tblr-primary) 6%, transparent);
}

.pts-calendar-cell:not(.is-empty):focus-visible {
  outline: 2px solid color-mix(in srgb, var(--tblr-primary) 55%, transparent);
  outline-offset: -2px;
}

.pts-calendar-daynum {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.65rem;
  height: 1.65rem;
  padding: 0 0.2rem;
  font-size: 0.8rem;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  align-self: flex-end;
  border-radius: 999px;
  line-height: 1;
}

.pts-calendar-cell.is-today .pts-calendar-daynum {
  background: var(--tblr-primary);
  color: var(--tblr-primary-fg, #fff);
  font-weight: 700;
}

.pts-calendar-chips {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-height: 0;
  overflow: hidden;
  flex: 1 1 auto;
}

.pts-calendar-chip {
  display: block;
  max-width: 100%;
  padding: 0.1rem 0.3rem;
  border: 0;
  border-radius: 0.25rem;
  font-size: 0.68rem;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--tblr-primary-fg, #fff);
  cursor: pointer;
  text-align: left;
  background: var(--tblr-secondary);
}

.pts-calendar-chip:focus-visible {
  outline: 2px solid var(--tblr-primary);
  outline-offset: 1px;
}

.pts-calendar-chip strong {
  font-weight: 650;
}

.pts-calendar-chip-time {
  display: block;
  opacity: 0.9;
  font-weight: 500;
}

.pts-calendar-types {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.pts-calendar-type-row:not(tr) {
  display: grid;
  grid-template-columns: 2.75rem minmax(0, 1fr) auto auto;
  gap: 0.5rem;
  align-items: center;
}

.pts-calendar-type-system {
  font-size: 0.75rem;
  color: var(--tblr-secondary);
  white-space: nowrap;
}

/* Calendar Type Definitions page */
.pts-calendar-types-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(16rem, 0.7fr);
  gap: 1rem;
  width: 100%;
  align-items: start;
  flex: 1 1 auto;
  min-height: 0;
}

.pts-calendar-types-list-panel {
  min-height: 22rem;
}

.pts-calendar-types-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(17.5rem, 1fr));
  gap: 0.85rem;
}

.pts-calendar-types-table-wrap {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  border: 1px solid var(--tblr-border-color);
  border-radius: 0.85rem;
}

.pts-calendar-types-table {
  margin: 0;
}

.pts-calendar-types-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: color-mix(in srgb, var(--tblr-bg-surface) 92%, var(--tblr-primary) 6%);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--tblr-secondary);
  white-space: nowrap;
}

.pts-calendar-types-table tbody tr.is-dirty {
  background: color-mix(in srgb, var(--tblr-primary) 6%, transparent);
}

.pts-calendar-types-table .form-control-color {
  width: 2.75rem;
  padding: 0.2rem;
}

.pts-calendar-type-slug-code {
  font-size: 0.78rem;
  color: var(--tblr-secondary);
}

.pts-calendar-type-table-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  justify-content: flex-end;
}

.pts-calendar-type-card {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 0.95rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-border-color));
  border-radius: 0.95rem;
  background: color-mix(in srgb, var(--tblr-bg-surface) 96%, transparent);
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.pts-calendar-type-card.is-dirty {
  border-color: color-mix(in srgb, var(--tblr-primary) 42%, var(--tblr-border-color));
  box-shadow: 0 12px 28px -24px color-mix(in srgb, var(--tblr-primary) 55%, transparent);
}

.pts-calendar-type-card-preview {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
}

.pts-calendar-type-swatch {
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 999px;
  flex: 0 0 auto;
  border: 1px solid color-mix(in srgb, #000 12%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, #fff 25%, transparent);
}

.pts-calendar-type-chip-demo {
  display: inline-flex;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  color: #fff;
  font-size: 0.82rem;
  font-weight: 600;
}

.pts-calendar-type-card-fields {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.45rem 0.65rem;
  align-items: center;
}

.pts-calendar-type-card-fields .form-label {
  margin: 0;
  font-size: 0.78rem;
  color: var(--tblr-secondary);
}

.pts-calendar-type-card-fields .form-control-color {
  width: 2.75rem;
  padding: 0.2rem;
}

.pts-calendar-type-slug {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding-top: 0.15rem;
}

.pts-calendar-type-slug code {
  font-size: 0.78rem;
  color: var(--tblr-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-calendar-type-card-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin-top: auto;
}

.pts-calendar-type-system-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.28rem 0.6rem;
  border-radius: 999px;
  font-size: 0.75rem;
  color: var(--tblr-secondary);
  background: color-mix(in srgb, var(--tblr-secondary) 10%, transparent);
  border: 1px solid var(--tblr-border-color);
}

.pts-calendar-type-add-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
}

.pts-calendar-type-add-toolbar .pts-calendar-type-add-name {
  min-width: 12rem;
  width: min(16rem, 42vw);
}

.pts-calendar-type-color-input {
  width: 2.25rem;
  height: 2.25rem;
  padding: 0.15rem;
  cursor: pointer;
}

.pts-calendar-type-name-stack {
  gap: 0.35rem;
}

.pts-calendar-type-name-stack .pts-calendar-type-system-badge {
  align-self: flex-start;
}



@media (max-width: 991.98px) {
  .pts-calendar-types-grid {
    grid-template-columns: 1fr;
  }

  .pts-calendar-types-add-panel {
    position: static;
  }
}

.pts-calendar-chip.is-meeting,
.pts-calendar-badge.is-meeting,
.pts-calendar-chip.is-task,
.pts-calendar-badge.is-task,
.pts-calendar-chip.is-reminder,
.pts-calendar-badge.is-reminder,
.pts-calendar-chip.is-other,
.pts-calendar-badge.is-other {
  /* Legacy category class hooks unused; chip colors come from inline type color. */
  background: var(--tblr-secondary);
}

.pts-calendar-more {
  font-size: 0.68rem;
  color: var(--tblr-secondary);
}

.pts-calendar-badge {
  display: inline-block;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  color: var(--tblr-primary-fg, #fff);
  font-size: 0.75rem;
  font-weight: 600;
}

.pts-calendar-type-chip-demo {
  color: var(--tblr-primary-fg, #fff);
}

@media (max-width: 767.98px) {
  .pts-calendar-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .pts-calendar-views,
  .pts-calendar-nav {
    width: 100%;
    justify-content: flex-start;
  }

  .pts-calendar-chip {
    font-size: 0.6rem;
  }

  .pts-calendar-cell {
    padding: 0.25rem;
  }

  .pts-calendar-daynum {
    min-width: 1.4rem;
    height: 1.4rem;
    font-size: 0.72rem;
  }

  .pts-calendar-type-add-toolbar {
    width: 100%;
  }

  .pts-calendar-type-add-toolbar .pts-calendar-type-add-name {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
  }

  .pts-calendar-year {
    grid-template-columns: 1fr;
  }

  .pts-calendar-week-head,
  .pts-calendar-week-allday,
  .pts-calendar-week-row {
    min-width: 44rem;
  }

  .pts-calendar-week {
    overflow-x: auto;
  }
}

@media (max-width: 575.98px) {
  .pts-calendar-view-label {
    display: none;
  }

  .pts-calendar-period-select {
    min-width: 5.75rem;
  }
}

.pts-calendar-chip-time {
  display: block;
  opacity: 0.9;
  font-weight: 400;
}

.pts-calendar-day,
.pts-calendar-week {
  border: 1px solid var(--tblr-border-color);
  border-radius: var(--tblr-border-radius);
  overflow: hidden;
  background: var(--tblr-bg-surface);
  display: flex;
  flex-direction: column;
}

.pts-calendar-day-head,
.pts-calendar-allday,
.pts-calendar-week-head,
.pts-calendar-week-allday {
  flex: 0 0 auto;
}

.pts-calendar-day-head,
.pts-calendar-allday {
  padding: 0.65rem 0.75rem;
  border-bottom: 1px solid var(--tblr-border-color);
}

.pts-calendar-day-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  font-weight: 650;
  margin-bottom: 0.35rem;
}

.pts-calendar-today-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  background: var(--tblr-primary);
  color: var(--tblr-primary-fg, #fff);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.pts-calendar-allday {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
}

.pts-calendar-allday-label {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--tblr-secondary);
  white-space: nowrap;
}

.pts-calendar-allday-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}

.pts-calendar-timeline {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

.pts-calendar-hour {
  display: grid;
  grid-template-columns: 4.25rem 1fr;
  width: 100%;
  min-height: 3rem;
  padding: 0;
  border: 0;
  border-bottom: 1px solid var(--tblr-border-color);
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.pts-calendar-hour:hover,
.pts-calendar-week-cell:hover {
  background: color-mix(in srgb, var(--tblr-primary) 6%, transparent);
}

.pts-calendar-hour.is-now {
  background: color-mix(in srgb, var(--tblr-primary) 8%, transparent);
}

.pts-calendar-hour-label {
  padding: 0.45rem 0.5rem;
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
  color: var(--tblr-secondary);
  border-right: 1px solid var(--tblr-border-color);
}

.pts-calendar-hour-body {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.3rem 0.45rem;
  min-width: 0;
}

.pts-calendar-hour-body .pts-calendar-chip {
  font-size: 0.75rem;
  padding: 0.25rem 0.4rem;
  white-space: normal;
}

.pts-calendar-week-head,
.pts-calendar-week-allday,
.pts-calendar-week-row {
  display: grid;
  grid-template-columns: 4.25rem repeat(7, minmax(0, 1fr));
}

.pts-calendar-week-gutter {
  border-right: 1px solid var(--tblr-border-color);
  padding: 0.35rem 0.4rem;
}

.pts-calendar-week-dayhead {
  padding: 0.45rem 0.35rem;
  text-align: center;
  border-right: 1px solid var(--tblr-border-color);
  border-bottom: 1px solid var(--tblr-border-color);
}

.pts-calendar-week-dayhead:last-child,
.pts-calendar-week-allday-col:last-child,
.pts-calendar-week-cell:last-child {
  border-right: 0;
}

.pts-calendar-week-dayhead.is-today {
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
}

.pts-calendar-week-dayname {
  font-size: 0.7rem;
  text-transform: uppercase;
  color: var(--tblr-secondary);
  font-weight: 600;
}

.pts-calendar-week-daynum {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.85rem;
  height: 1.85rem;
  margin-inline: auto;
  font-size: 1rem;
  font-weight: 650;
  border-radius: 999px;
  line-height: 1;
}

.pts-calendar-week-dayhead.is-today .pts-calendar-week-daynum {
  background: var(--tblr-primary);
  color: var(--tblr-primary-fg, #fff);
  font-weight: 700;
}

.pts-calendar-week-cell.is-today {
  background: color-mix(in srgb, var(--tblr-primary) 6%, transparent);
}

.pts-calendar-week-allday-col.is-today {
  background: color-mix(in srgb, var(--tblr-primary) 6%, transparent);
}

.pts-calendar-week-allday {
  border-bottom: 1px solid var(--tblr-border-color);
  min-height: 2.5rem;
}

.pts-calendar-week-allday-col {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.25rem;
  border-right: 1px solid var(--tblr-border-color);
  min-width: 0;
  overflow: hidden;
}

.pts-calendar-week-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

.pts-calendar-week-cell {
  min-height: 2.75rem;
  padding: 0.15rem;
  border: 0;
  border-right: 1px solid var(--tblr-border-color);
  border-bottom: 1px solid var(--tblr-border-color);
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
  overflow: hidden;
}

.pts-calendar-year {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
  align-content: start;
  overflow: auto;
  min-height: 0;
}

.pts-calendar-year-month {
  border: 1px solid var(--tblr-border-color);
  border-radius: var(--tblr-border-radius);
  background: var(--tblr-bg-surface);
  padding: 0.55rem 0.6rem 0.7rem;
}

.pts-calendar-year-month-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  font-weight: 650;
  margin-bottom: 0.35rem;
  padding: 0.15rem 0;
  cursor: pointer;
}

.pts-calendar-year-count {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--tblr-primary);
}

.pts-calendar-year-weekdays,
.pts-calendar-year-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.1rem;
}

.pts-calendar-year-weekdays {
  margin-bottom: 0.2rem;
  font-size: 0.65rem;
  color: var(--tblr-secondary);
  text-align: center;
  font-weight: 600;
}

.pts-calendar-year-cell {
  aspect-ratio: 1;
  border: 0;
  border-radius: 0.3rem;
  background: transparent;
  color: inherit;
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
  cursor: pointer;
}

.pts-calendar-year-cell.is-empty {
  cursor: default;
}

.pts-calendar-year-cell.has-events {
  background: color-mix(in srgb, var(--tblr-primary) 16%, transparent);
  font-weight: 650;
}

.pts-calendar-year-cell.is-today {
  background: var(--tblr-primary);
  color: var(--tblr-primary-fg, #fff);
  font-weight: 700;
}

.pts-calendar-year-cell:not(.is-empty):hover {
  background: color-mix(in srgb, var(--tblr-primary) 10%, transparent);
}

@media (max-width: 991.98px) {
  .pts-calendar-year {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Calendar Import / Export transfer pages — full-width modern layout */
.pts-page-detail.pts-calendar-transfer-detail {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 0;
  overflow: auto;
  padding: 0;
  background:
    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--tblr-primary) 10%, transparent), transparent 55%),
    radial-gradient(90% 70% at 100% 0%, color-mix(in srgb, var(--tblr-primary) 6%, transparent), transparent 50%),
    var(--tblr-bg-surface);
}

.pts-calendar-transfer-body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
  max-width: none;
  min-height: 100%;
  padding: 1rem 1.1rem 1.25rem;
  box-sizing: border-box;
}

.pts-calendar-transfer-hero {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  width: 100%;
  padding: 1rem 1.15rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 14%, var(--tblr-border-color));
  border-radius: calc(var(--tblr-border-radius) + 0.15rem);
  background: color-mix(in srgb, var(--tblr-bg-surface) 88%, transparent);
  box-shadow: 0 14px 34px -28px color-mix(in srgb, var(--tblr-primary) 45%, transparent);
}

.pts-calendar-transfer-hero-icon {
  display: grid;
  place-items: center;
  width: 3.1rem;
  height: 3.1rem;
  border-radius: 0.95rem;
  color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 22%, transparent);
}

.pts-calendar-transfer-hero-icon .icon {
  width: 1.45rem;
  height: 1.45rem;
}

.pts-calendar-transfer-hero-text {
  color: var(--tblr-body-color);
  font-size: 0.98rem;
  line-height: 1.45;
}

.pts-calendar-transfer-hero-meta {
  margin-top: 0.35rem;
  color: var(--tblr-secondary);
  font-size: 0.84rem;
}

.pts-calendar-transfer-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  justify-content: flex-end;
}

.pts-calendar-transfer-stat {
  min-width: 5.5rem;
  padding: 0.55rem 0.75rem;
  border-radius: 0.75rem;
  border: 1px solid var(--tblr-border-color);
  background: color-mix(in srgb, var(--tblr-bg-surface) 92%, var(--tblr-primary) 4%);
  text-align: start;
}

.pts-calendar-transfer-stat-label {
  display: block;
  color: var(--tblr-secondary);
  font-size: 0.72rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  margin-bottom: 0.15rem;
}

.pts-calendar-transfer-stat strong {
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.1;
}

.pts-calendar-transfer-stat.is-success {
  border-color: color-mix(in srgb, var(--tblr-success) 35%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-success) 10%, var(--tblr-bg-surface));
}

.pts-calendar-transfer-stat.is-warn {
  border-color: color-mix(in srgb, var(--tblr-warning) 35%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-warning) 10%, var(--tblr-bg-surface));
}

.pts-calendar-transfer-grid {
  display: grid;
  grid-template-columns: minmax(18rem, 0.95fr) minmax(22rem, 1.35fr);
  gap: 1rem;
  width: 100%;
  align-items: stretch;
  flex: 1 1 auto;
  min-height: 0;
}

.pts-calendar-transfer-history {
  margin-top: 1rem;
  flex: 0 0 auto;
  min-height: 12rem;
}

.pts-calendar-transfer-history .pts-dt {
  min-height: 10rem;
}

.pts-calendar-transfer-detail--table .pts-calendar-transfer-history-only,
.pts-calendar-transfer-history-only {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
}

.pts-calendar-transfer-detail--table .pts-calendar-transfer-history-only .pts-dt {
  flex: 1 1 auto;
  min-height: 0;
}

.pts-calendar-transfer-detail--table {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.pts-calendar-transfer-panel {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  min-width: 0;
  min-height: 0;
  padding: 1.05rem 1.15rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-border-color));
  border-radius: calc(var(--tblr-border-radius) + 0.15rem);
  background: color-mix(in srgb, var(--tblr-bg-surface) 94%, transparent);
  box-shadow: 0 16px 36px -30px color-mix(in srgb, var(--tblr-primary) 40%, transparent);
}

.pts-calendar-transfer-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.pts-calendar-transfer-panel-title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.pts-calendar-transfer-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.28rem 0.6rem;
  border-radius: 999px;
  font-size: 0.78rem;
  color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 18%, transparent);
}

.pts-calendar-transfer-drop {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.9rem;
  align-items: center;
  padding: 1.15rem 1.1rem;
  border: 1.5px dashed color-mix(in srgb, var(--tblr-primary) 35%, var(--tblr-border-color));
  border-radius: 1rem;
  background:
    linear-gradient(
      160deg,
      color-mix(in srgb, var(--tblr-primary) 8%, transparent),
      transparent 55%
    ),
    color-mix(in srgb, var(--tblr-bg-surface) 96%, transparent);
  transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}

.pts-calendar-transfer-drop.is-dragging {
  border-color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-bg-surface));
  transform: translateY(-1px);
}

.pts-calendar-transfer-drop.has-file {
  border-style: solid;
}

.pts-calendar-transfer-drop.is-disabled {
  opacity: 0.72;
}

.pts-calendar-transfer-drop-icon {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.85rem;
  color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
}

.pts-calendar-transfer-drop-icon .icon {
  width: 1.3rem;
  height: 1.3rem;
}

.pts-calendar-transfer-drop-copy {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.pts-calendar-transfer-drop-copy strong {
  font-size: 0.98rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-calendar-transfer-drop-copy span {
  color: var(--tblr-secondary);
  font-size: 0.84rem;
}

.pts-calendar-transfer-progress-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.pts-calendar-transfer-progress {
  padding: 0.85rem 0.95rem;
  border-radius: 0.85rem;
  border: 1px solid var(--tblr-border-color);
  background: color-mix(in srgb, var(--tblr-bg-surface) 90%, var(--tblr-primary) 4%);
}

.pts-calendar-transfer-progress.is-busy {
  border-color: color-mix(in srgb, var(--tblr-primary) 28%, var(--tblr-border-color));
}

.pts-calendar-transfer-progress.is-done {
  border-color: color-mix(in srgb, var(--tblr-success) 35%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-success) 8%, var(--tblr-bg-surface));
}

.pts-calendar-transfer-progress-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.55rem;
}

.pts-calendar-transfer-progress-phase {
  color: var(--tblr-secondary);
  font-size: 0.86rem;
}

.pts-calendar-transfer-progress-pct {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--tblr-primary);
}

.pts-calendar-transfer-progress.is-done .pts-calendar-transfer-progress-pct {
  color: var(--tblr-success);
}

.pts-calendar-transfer-progress-bar {
  height: 0.9rem;
  border-radius: 999px;
  overflow: hidden;
  background: color-mix(in srgb, var(--tblr-primary) 8%, var(--tblr-bg-surface-secondary, var(--tblr-bg-surface)));
}

.pts-calendar-transfer-progress-bar .progress-bar {
  border-radius: inherit;
  transition: width 0.25s ease;
}

.pts-calendar-transfer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  justify-content: flex-end;
  margin-top: auto;
  padding-top: 0.25rem;
}

.pts-calendar-transfer-preview,
.pts-calendar-transfer-status {
  min-height: 22rem;
}

.pts-calendar-transfer-table-wrap {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  border: 1px solid var(--tblr-border-color);
  border-radius: 0.85rem;
}

.pts-calendar-transfer-table {
  margin: 0;
}

.pts-calendar-transfer-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: color-mix(in srgb, var(--tblr-bg-surface) 92%, var(--tblr-primary) 6%);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--tblr-secondary);
  border-bottom-width: 1px;
}

.pts-calendar-transfer-table tbody tr:hover {
  background: color-mix(in srgb, var(--tblr-primary) 5%, transparent);
}

.pts-calendar-transfer-title-cell {
  display: inline-block;
  max-width: 18rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
}

.pts-calendar-transfer-type-pill {
  display: inline-flex;
  max-width: 10rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0.18rem 0.5rem;
  border-radius: 999px;
  font-size: 0.78rem;
  background: color-mix(in srgb, var(--tblr-primary) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 16%, transparent);
}

.pts-calendar-transfer-more {
  color: var(--tblr-secondary);
  font-size: 0.84rem;
}

.pts-calendar-transfer-empty {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  min-height: 14rem;
  padding: 1.5rem;
  text-align: center;
  color: var(--tblr-secondary);
  border: 1px dashed var(--tblr-border-color);
  border-radius: 0.95rem;
  background: color-mix(in srgb, var(--tblr-bg-surface) 96%, transparent);
}

.pts-calendar-transfer-empty .icon {
  width: 1.75rem;
  height: 1.75rem;
  color: var(--tblr-primary);
  opacity: 0.85;
}

.pts-calendar-transfer-success {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.75rem 0.9rem;
  border-radius: 0.8rem;
  color: var(--tblr-success);
  background: color-mix(in srgb, var(--tblr-success) 10%, var(--tblr-bg-surface));
  border: 1px solid color-mix(in srgb, var(--tblr-success) 28%, var(--tblr-border-color));
}

.pts-calendar-transfer-success .icon {
  flex: 0 0 auto;
}

.pts-calendar-export-presets {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.pts-calendar-export-preset {
  border: 1px solid var(--tblr-border-color);
  background: transparent;
  color: inherit;
  border-radius: 999px;
  padding: 0.35rem 0.85rem;
  font-size: 0.84rem;
}

.pts-calendar-export-preset:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--tblr-primary) 40%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 8%, transparent);
}

.pts-calendar-export-preset.is-active {
  border-color: color-mix(in srgb, var(--tblr-primary) 45%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 14%, transparent);
  color: var(--tblr-primary);
  font-weight: 600;
}

.pts-calendar-export-range {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.pts-calendar-transfer-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.pts-calendar-transfer-steps li {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.65rem 0.7rem;
  border-radius: 0.75rem;
  border: 1px solid var(--tblr-border-color);
  color: var(--tblr-secondary);
  font-size: 0.86rem;
  background: color-mix(in srgb, var(--tblr-bg-surface) 94%, transparent);
}

.pts-calendar-transfer-step-index {
  display: grid;
  place-items: center;
  width: 1.45rem;
  height: 1.45rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  background: color-mix(in srgb, var(--tblr-primary) 10%, transparent);
  color: var(--tblr-primary);
}

.pts-calendar-transfer-steps li.is-active {
  border-color: color-mix(in srgb, var(--tblr-primary) 35%, var(--tblr-border-color));
  color: var(--tblr-body-color);
  background: color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-bg-surface));
}

.pts-calendar-transfer-steps li.is-done {
  border-color: color-mix(in srgb, var(--tblr-success) 35%, var(--tblr-border-color));
  color: var(--tblr-success);
  background: color-mix(in srgb, var(--tblr-success) 8%, var(--tblr-bg-surface));
}

.pts-calendar-transfer-steps li.is-done .pts-calendar-transfer-step-index {
  background: color-mix(in srgb, var(--tblr-success) 16%, transparent);
  color: var(--tblr-success);
}

.pts-calendar-transfer-status-note {
  color: var(--tblr-secondary);
  font-size: 0.86rem;
}

@media (max-width: 991.98px) {
  .pts-calendar-transfer-hero {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .pts-calendar-transfer-stats {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .pts-calendar-transfer-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .pts-calendar-transfer-body {
    padding: 0.75rem;
  }

  .pts-calendar-transfer-drop {
    grid-template-columns: 1fr;
    text-align: center;
    justify-items: center;
  }

  .pts-calendar-export-range {
    grid-template-columns: 1fr;
  }

  .pts-calendar-transfer-steps {
    grid-template-columns: 1fr;
  }

  .pts-calendar-transfer-actions {
    justify-content: stretch;
  }

  .pts-calendar-transfer-actions .btn {
    flex: 1 1 auto;
  }
}

/* Employee country select + flags (flagcdn, same pattern as Account language flags) */
.pts-country-select {
  position: relative;
}

.pts-country-select-trigger {
  display: flex;
  align-items: center;
  text-align: start;
  padding-inline-end: 2.25rem;
}

.pts-country-select-value {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
  max-width: 100%;
}

.pts-country-select-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-country-select-label.is-placeholder {
  color: var(--tblr-secondary, #6c7a91);
}

.pts-country-select-menu {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.5rem;
  border: 1px solid var(--tblr-border-color, #e6e7e9);
  border-radius: 0.5rem;
  background: var(--tblr-bg-surface, #fff);
  box-shadow: 0 0.75rem 1.5rem rgba(24, 36, 51, 0.12);
  overflow: hidden;
}

.pts-country-select-search {
  flex: 0 0 auto;
}

.pts-country-select-list {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow: auto;
  max-height: 14rem;
}

.pts-country-select-option {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 0.55rem;
  padding: 0.4rem 0.5rem;
  border: 0;
  border-radius: 0.35rem;
  background: transparent;
  color: inherit;
  text-align: start;
}

.pts-country-select-option:hover,
.pts-country-select-option:focus-visible,
.pts-country-select-option.is-active {
  background: color-mix(in srgb, var(--tblr-primary, #206bc4) 10%, transparent);
  outline: none;
}

.pts-country-select-option-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.2;
}

.pts-country-select-option-text strong {
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-country-select-option-text small {
  color: var(--tblr-secondary, #6c7a91);
  font-size: 0.75rem;
}

.pts-country-select-empty {
  padding: 0.65rem 0.5rem;
  color: var(--tblr-secondary, #6c7a91);
  font-size: 0.875rem;
}

.pts-country-flag {
  display: block;
  flex: 0 0 auto;
  width: 1.5rem;
  height: 1.125rem;
  object-fit: cover;
  border-radius: 0.2rem;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 70%, transparent);
  background: color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 35%, transparent);
}

.pts-country-flag--sm {
  width: 1.25rem;
  height: 0.95rem;
}

.pts-country-flag--empty {
  background: color-mix(in srgb, var(--tblr-border-color, #e6e7e9) 45%, transparent);
}

.pts-country-cell {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-width: 0;
}

/* E-Mail inbox (Page_Email) */
.pts-email-subject-cell {
  min-width: 12rem;
  max-width: 36rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pts-email-preview {
  font-weight: 400;
}
.pts-email-star .icon {
  color: var(--tblr-warning);
}
.pts-email-row-unread td {
  background: color-mix(in srgb, var(--tblr-primary) 4%, transparent);
}

/* —— Calendar Analysis —— */
.pts-page-detail.pts-cal-analysis-detail {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

.pts-cal-analysis-detail > .pts-cal-analysis {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
}

.pts-cal-analysis {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  min-height: 0;
  height: 100%;
}

.pts-cal-analysis > .text-danger,
.pts-cal-analysis > .text-secondary {
  flex: 0 0 auto;
}

.pts-cal-analysis-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.7rem;
  flex: 0 0 auto;
}

.pts-cal-analysis-kpi {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.85rem 0.95rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 88%, transparent);
  border-radius: calc(var(--tblr-border-radius) * 1.15);
  background: var(--tblr-bg-surface);
}

.pts-cal-analysis-kpi-value {
  font-size: 1.45rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--tblr-body-color);
}

.pts-cal-analysis-kpi-label {
  color: var(--tblr-secondary);
  font-size: 0.82rem;
  font-weight: 550;
  line-height: 1.3;
}

.pts-cal-analysis-kpi-hint {
  color: var(--tblr-secondary);
  font-size: 0.76rem;
  opacity: 0.88;
}

.pts-cal-analysis-panel {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  gap: 0.7rem;
  min-height: 0;
  max-width: 100%;
  padding: 0.9rem 1rem 0.55rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 90%, transparent);
  border-radius: calc(var(--tblr-border-radius) * 1.2);
  background: var(--tblr-bg-surface);
}

.pts-cal-analysis-panel-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 0.85rem;
  flex: 0 0 auto;
}

.pts-cal-analysis-panel-heading {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.pts-cal-analysis-panel-title {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 650;
  letter-spacing: -0.015em;
}

.pts-cal-analysis-panel-meta {
  color: var(--tblr-secondary);
  font-size: 0.76rem;
}

.pts-cal-analysis-panel-stat {
  display: inline-flex;
  align-items: baseline;
  gap: 0.35rem;
  padding: 0.22rem 0.55rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 85%, transparent);
  background: color-mix(in srgb, var(--tblr-bg-surface) 94%, var(--tblr-primary) 6%);
}

.pts-cal-analysis-panel-stat-value {
  font-size: 0.88rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  color: var(--tblr-body-color);
}

.pts-cal-analysis-panel-stat-label {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--tblr-secondary);
}

.pts-cal-analysis-chart-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-end;
  min-height: 0;
  width: 100%;
  padding-top: clamp(0.35rem, 2vh, 1.1rem);
  padding-bottom: 0;
}

.pts-cal-analysis-empty {
  margin-top: auto;
  margin-bottom: auto;
  padding: 1.25rem 0.5rem;
  color: var(--tblr-secondary);
  font-size: 0.88rem;
  text-align: center;
}

.pts-cal-analysis-plot {
  position: relative;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  width: 100%;
  max-width: none;
  height: clamp(9.75rem, 26vh, 14rem);
  max-height: min(14rem, 100%);
  padding: 0.1rem 0.15rem 0;
  margin-top: auto;
}

.pts-cal-analysis-plot-guides {
  position: absolute;
  inset: 1.2rem 0.15rem 1.45rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  pointer-events: none;
  z-index: 0;
}

.pts-cal-analysis-plot-guides > span {
  display: block;
  height: 1px;
  background: color-mix(in srgb, var(--tblr-border-color) 55%, transparent);
  opacity: 0.55;
}

.pts-cal-analysis-columns {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(0.22rem, 0.55vw, 0.45rem);
  align-items: stretch;
  height: 100%;
  min-height: 0;
  padding: 0;
}

.pts-cal-analysis-columns.is-year {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.pts-cal-analysis-column {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.28rem;
  min-width: 0;
  height: 100%;
}

.pts-cal-analysis-column-value {
  font-size: clamp(0.62rem, 0.85vw, 0.72rem);
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  color: var(--tblr-secondary);
  min-height: 0.85rem;
  line-height: 1;
  opacity: 0.9;
}

.pts-cal-analysis-column.is-empty .pts-cal-analysis-column-value {
  opacity: 0.28;
}

.pts-cal-analysis-column-track {
  flex: 1 1 auto;
  width: 100%;
  max-width: none;
  min-height: 0;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  border-radius: 0.45rem 0.45rem 0.2rem 0.2rem;
  background: color-mix(in srgb, var(--tblr-border-color) 22%, transparent);
  overflow: hidden;
}

.pts-cal-analysis-column-fill {
  display: block;
  width: 100%;
  border-radius: inherit;
  background: color-mix(in srgb, var(--tblr-primary) 62%, transparent);
  transform-origin: bottom;
  animation: pts-cal-bar-rise 0.45s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: var(--pts-cal-bar-delay, 0ms);
  transition: background-color 0.18s ease, filter 0.18s ease;
}

.pts-cal-analysis-column:hover .pts-cal-analysis-column-fill {
  filter: brightness(1.08);
  background: color-mix(in srgb, var(--tblr-primary) 78%, transparent);
}

.pts-cal-analysis-column.is-current .pts-cal-analysis-column-track {
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
}

.pts-cal-analysis-column.is-current .pts-cal-analysis-column-fill {
  background: var(--tblr-primary);
}

.pts-cal-analysis-column.is-current .pts-cal-analysis-column-value,
.pts-cal-analysis-column.is-current .pts-cal-analysis-column-label {
  color: var(--tblr-primary);
  opacity: 1;
}

.pts-cal-analysis-column-label {
  font-size: clamp(0.6rem, 0.8vw, 0.7rem);
  font-weight: 600;
  color: var(--tblr-secondary);
  text-align: center;
  line-height: 1.15;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@keyframes pts-cal-bar-rise {
  from {
    transform: scaleY(0.12);
    opacity: 0.4;
  }
  to {
    transform: scaleY(1);
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pts-cal-analysis-column-fill {
    animation: none;
    transition: none;
  }
}

@media (min-height: 900px) {
  .pts-cal-analysis-plot {
    height: clamp(11rem, 24vh, 15rem);
    max-height: 15rem;
  }
}

@media (max-height: 760px) {
  .pts-cal-analysis {
    gap: 0.65rem;
  }

  .pts-cal-analysis-kpi {
    padding: 0.65rem 0.8rem;
  }

  .pts-cal-analysis-kpi-value {
    font-size: 1.25rem;
  }

  .pts-cal-analysis-kpi-hint {
    display: none;
  }

  .pts-cal-analysis-panel {
    padding: 0.75rem 0.85rem 0.45rem;
    gap: 0.55rem;
  }

  .pts-cal-analysis-chart-body {
    padding-top: 0.25rem;
    padding-bottom: 0;
  }

  .pts-cal-analysis-plot {
    height: clamp(8.5rem, 22vh, 11rem);
    max-height: 11rem;
  }
}

@media (max-width: 992px) {
  .pts-cal-analysis-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pts-cal-analysis-plot {
    width: 100%;
    height: clamp(9.5rem, 24vh, 12.5rem);
    max-height: 12.5rem;
  }
}

@media (max-width: 576px) {
  .pts-page-detail.pts-cal-analysis-detail {
    overflow: auto;
  }

  .pts-cal-analysis-kpis {
    grid-template-columns: 1fr;
  }

  .pts-cal-analysis-panel {
    min-height: 14rem;
  }

  .pts-cal-analysis-plot {
    width: 100%;
    height: 10rem;
    max-height: 10rem;
  }
}

/* QR Link analysis — finance fill + acc KPI accents */
.pts-page-detail.pts-qrlink-analysis-detail {
  display: flex;
  flex-direction: column;
  gap: var(--pts-card-gap, 0.75rem);
  min-height: 0;
  overflow: hidden;
}

.pts-page-detail.pts-qrlink-analysis-detail > .empty,
.pts-page-detail.pts-qrlink-analysis-detail > .text-danger,
.pts-page-detail.pts-qrlink-analysis-detail > .pts-qrlink-analysis-hero,
.pts-page-detail.pts-qrlink-analysis-detail > .pts-qrlink-analysis-table-head {
  flex: 0 0 auto;
}

.pts-page-detail.pts-qrlink-analysis-detail > .pts-dt-card {
  flex: 1 1 auto;
  min-height: 0;
}

.pts-qrlink-analysis-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 0.85rem;
  padding: 0.95rem 1rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 14%, var(--tblr-border-color));
  border-radius: calc(var(--tblr-border-radius) + 0.18rem);
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--tblr-primary) 7%, var(--tblr-bg-surface)) 0%, var(--tblr-bg-surface) 58%);
  box-shadow: 0 12px 26px -22px color-mix(in srgb, var(--tblr-primary) 42%, transparent);
}

.pts-qrlink-analysis-hero-main {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  min-width: 0;
}

.pts-qrlink-analysis-kicker {
  margin: 0 0 0.2rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--tblr-primary) 70%, var(--tblr-secondary));
}

.pts-qrlink-analysis-hero-title {
  margin: 0 0 0.3rem;
  font-size: 1.2rem;
  font-weight: 780;
  letter-spacing: -0.02em;
}

.pts-qrlink-analysis-hero-text {
  margin: 0;
  font-size: 0.84rem;
  color: var(--tblr-secondary);
  max-width: 36rem;
}

.pts-qrlink-analysis-select-card {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.7rem 0.8rem;
  border-radius: var(--tblr-border-radius);
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 88%, transparent);
  background: color-mix(in srgb, var(--tblr-bg-surface) 92%, var(--tblr-bg-surface-secondary));
}

.pts-qrlink-analysis-select-card > .icon {
  width: 1.35rem;
  height: 1.35rem;
  margin-top: 1.55rem;
  color: var(--tblr-primary);
}

.pts-qrlink-analysis-select-fields {
  flex: 1 1 auto;
  min-width: 0;
}

.pts-qrlink-analysis-select-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.45rem;
}

.pts-qrlink-analysis-kpi-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: stretch;
}

.pts-qrlink-analysis-kpi-wide {
  grid-column: 1 / -1;
}

.pts-qrlink-analysis-kpi-value-sm {
  font-size: 1rem !important;
  letter-spacing: -0.01em !important;
  line-height: 1.35;
}

.pts-qrlink-analysis-table-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem;
}

.pts-qrlink-analysis-panel-title {
  font-size: 1rem;
  font-weight: 750;
}

.pts-qrlink-analysis-detail .pts-qrlink-analysis-row-active > td {
  background: color-mix(in srgb, var(--tblr-primary) 8%, var(--tblr-bg-surface)) !important;
}

.pts-qrlink-list-body .pts-manage-section-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 0 !important;
}

.pts-qrlink-list-body .pts-manage-section-body > .empty {
  padding: 1.25rem 1rem;
}

.pts-qrlink-list-body .pts-manage-section-body > .pts-dt-card {
  flex: 1 1 auto;
  min-height: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

@media (max-width: 991.98px) {
  .pts-qrlink-analysis-hero {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 992px) {
  .pts-qrlink-analysis-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.pts-account-password-body {
  max-width: 28rem;
}

.pts-account-mail-body {
  max-width: 44rem;
}

.pts-account-password-form {
  width: 100%;
}

/* ── Vehicle Planning (7-day board) ─────────────────────────────── */
.pts-veh-plan-detail {
  --pts-veh-plan-vehicle-col: minmax(11rem, 14rem);
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.pts-veh-plan-main,
.pts-veh-plan-main-full {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex: 1 1 auto;
}

.pts-veh-plan-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-items: center;
  justify-content: space-between;
  flex: 0 0 auto;
}

.pts-veh-plan-toolbar-left {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-items: center;
  min-width: 0;
  flex: 1 1 14rem;
}

.pts-veh-plan-toolbar-filters {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.5rem;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  min-width: 0;
}

.pts-veh-plan-filter-select {
  flex: 0 0 11.5rem;
  width: 11.5rem;
  min-width: 11.5rem;
  max-width: 11.5rem;
}

.pts-veh-plan-filter-select,
.pts-veh-plan-search .form-control {
  min-height: 2.35rem;
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 16%, var(--tblr-border-color));
  border-radius: calc(var(--tblr-border-radius) + 0.1rem);
  background-color: var(--tblr-bg-surface);
  color: var(--tblr-body-color);
  box-shadow: none;
  transition:
    border-color 0.16s ease,
    box-shadow 0.16s ease,
    background-color 0.16s ease;
}

.pts-veh-plan-filter-select:hover,
.pts-veh-plan-search .form-control:hover {
  border-color: color-mix(in srgb, var(--tblr-primary) 28%, var(--tblr-border-color));
}

.pts-veh-plan-filter-select:focus,
.pts-veh-plan-search .form-control:focus {
  border-color: color-mix(in srgb, var(--tblr-primary) 48%, var(--tblr-border-color));
  background-color: var(--tblr-bg-surface);
  color: var(--tblr-body-color);
  box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--tblr-primary) 16%, transparent);
  outline: none;
}

[data-bs-theme="dark"] .pts-veh-plan-filter-select,
[data-bs-theme="dark"] .pts-veh-plan-search .form-control {
  background-color: var(--tblr-bg-surface);
  border-color: color-mix(in srgb, var(--tblr-primary) 22%, var(--tblr-border-color));
}

.pts-veh-plan-search {
  min-width: 10rem;
  max-width: 16rem;
  flex: 1 1 14rem;
  width: 100%;
}

.pts-veh-plan-search .form-control {
  width: 100%;
  min-width: 0;
}

.pts-veh-plan-board {
  min-height: 0;
  overflow: auto;
  border: 1px solid var(--tblr-border-color);
  border-radius: 0.55rem;
  background: var(--tblr-bg-surface);
}

.pts-veh-plan-header,
.pts-veh-plan-row {
  display: grid;
  grid-template-columns: var(--pts-veh-plan-vehicle-col) repeat(7, minmax(9rem, 1fr));
  min-width: 80rem;
}

.pts-veh-plan-header {
  position: sticky;
  top: 0;
  z-index: 2;
  background: color-mix(in srgb, var(--tblr-bg-surface) 92%, var(--tblr-primary) 8%);
  border-bottom: 1px solid var(--tblr-border-color);
}

.pts-veh-plan-corner,
.pts-veh-plan-day-head,
.pts-veh-plan-vehicle,
.pts-veh-plan-cell {
  padding: 0.55rem 0.5rem;
  border-right: 1px solid var(--tblr-border-color);
  border-bottom: 1px solid var(--tblr-border-color);
}

.pts-veh-plan-corner,
.pts-veh-plan-vehicle {
  position: sticky;
  left: 0;
  z-index: 1;
  background: var(--tblr-bg-surface);
}

.pts-veh-plan-header .pts-veh-plan-corner {
  z-index: 3;
  background: color-mix(in srgb, var(--tblr-bg-surface) 92%, var(--tblr-primary) 8%);
}

.pts-veh-plan-day-head {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  align-items: flex-start;
  font-size: 0.78rem;
}

.pts-veh-plan-day-head strong {
  font-size: 0.82rem;
}

.pts-veh-plan-day-head span {
  color: var(--tblr-secondary);
}

.pts-veh-plan-vehicle {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  justify-content: center;
}

.pts-veh-plan-vehicle-plate {
  font-size: 0.9rem;
  letter-spacing: 0.02em;
}

.pts-veh-plan-vehicle-meta,
.pts-veh-plan-vehicle-capacity {
  font-size: 0.72rem;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.pts-veh-plan-vehicle-meta {
  color: var(--tblr-secondary);
}

.pts-veh-plan-cell-seats {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  align-items: stretch;
  min-height: 4.5rem;
  background: transparent;
}

.pts-veh-plan-cell-meta {
  font-size: 0.68rem;
  line-height: 1.2;
}

.pts-veh-plan-seats {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.pts-veh-plan-seat {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  width: 100%;
  min-width: 0;
  text-align: left;
  border: 1px solid var(--tblr-border-color);
  border-radius: 0.4rem;
  background: transparent;
  padding: 0.28rem 0.4rem;
  font-size: 0.72rem;
  line-height: 1.2;
  cursor: pointer;
}

.pts-veh-plan-seat .icon {
  width: 0.85rem;
  height: 0.85rem;
  flex: 0 0 auto;
}

.pts-veh-plan-seat span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-veh-plan-seat.is-empty {
  color: var(--tblr-secondary);
  border-style: dashed;
}

.pts-veh-plan-seat.is-filled {
  font-weight: 600;
  border-color: color-mix(in srgb, var(--tblr-primary) 35%, var(--tblr-border-color));
}

.pts-veh-plan-seat.is-driver.is-filled {
  background: color-mix(in srgb, var(--tblr-primary) 12%, var(--tblr-bg-surface));
}

.pts-veh-plan-seat.is-passenger.is-filled {
  background: color-mix(in srgb, var(--tblr-azure, #4299e1) 10%, var(--tblr-bg-surface));
}

.pts-veh-plan-seat.is-focus {
  box-shadow: inset 0 0 0 1px var(--tblr-primary);
}

.pts-veh-plan-seat:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--tblr-primary) 55%, var(--tblr-border-color));
}

.pts-veh-plan-seat:disabled {
  cursor: default;
  opacity: 0.7;
}

.pts-veh-plan-empty {
  padding: 1.25rem 1rem;
}

.pts-veh-plan-assign-list {
  max-height: min(22rem, 50vh);
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.pts-veh-plan-assign-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(12rem, 0.85fr);
  gap: 0.85rem;
  align-items: stretch;
  min-height: 0;
}

.pts-veh-plan-assign-pane {
  min-width: 0;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.pts-veh-plan-assign-pane-title {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--tblr-secondary);
  margin-bottom: 0.45rem;
}

.pts-veh-plan-assign-pane-list .pts-veh-plan-assign-list {
  flex: 1 1 auto;
  max-height: min(26rem, 55vh);
  gap: 0.45rem;
  padding-right: 0.15rem;
}

.pts-veh-plan-assign-pane-days .pts-veh-plan-days-list {
  flex: 1 1 auto;
  overflow: auto;
  max-height: min(26rem, 55vh);
}

@media (max-width: 40rem) {
  .pts-veh-plan-assign-layout {
    grid-template-columns: 1fr;
  }
}

.pts-veh-plan-person {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  width: 100%;
  text-align: left;
  margin: 0;
  padding: 0.65rem 0.75rem;
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 88%, transparent);
  border-radius: 0.65rem;
  background: color-mix(in srgb, var(--tblr-bg-surface) 92%, var(--tblr-body-bg));
  box-shadow: 0 1px 0 color-mix(in srgb, var(--tblr-body-color) 4%, transparent);
  transition:
    border-color 0.16s ease,
    background-color 0.16s ease,
    box-shadow 0.16s ease;
}

.pts-veh-plan-person:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--tblr-primary) 28%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 5%, var(--tblr-bg-surface));
}

.pts-veh-plan-person.is-selected {
  border-color: color-mix(in srgb, var(--tblr-primary) 52%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-bg-surface));
  box-shadow:
    inset 3px 0 0 var(--tblr-primary),
    0 0 0 0.12rem color-mix(in srgb, var(--tblr-primary) 14%, transparent);
}

.pts-veh-plan-person:disabled {
  opacity: 0.7;
  cursor: default;
}

.pts-veh-plan-person-avatar {
  flex: 0 0 auto;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: color-mix(in srgb, var(--tblr-primary) 72%, var(--tblr-body-color));
  background: color-mix(in srgb, var(--tblr-primary) 14%, var(--tblr-bg-surface));
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 18%, transparent);
}

.pts-veh-plan-person-avatar.is-empty {
  color: var(--tblr-secondary);
  background: color-mix(in srgb, var(--tblr-secondary) 10%, var(--tblr-bg-surface));
  border-color: var(--tblr-border-color);
}

.pts-veh-plan-person-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.pts-veh-plan-person-top {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
}

.pts-veh-plan-person-name {
  font-size: 0.9rem;
  font-weight: 650;
  line-height: 1.25;
  color: var(--tblr-body-color);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-veh-plan-person-sub {
  font-size: 0.75rem;
  line-height: 1.3;
  color: var(--tblr-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-veh-plan-person-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  min-width: 0;
}

.pts-veh-plan-person-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  max-width: 100%;
  min-width: 0;
  padding: 0.16rem 0.45rem;
  border-radius: 999px;
  font-size: 0.7rem;
  line-height: 1.2;
  color: color-mix(in srgb, var(--tblr-body-color) 78%, var(--tblr-secondary));
  background: color-mix(in srgb, var(--tblr-body-color) 4%, var(--tblr-bg-surface));
  border: 1px solid color-mix(in srgb, var(--tblr-border-color) 80%, transparent);
}

.pts-veh-plan-person-chip .icon {
  width: 0.85rem;
  height: 0.85rem;
  flex: 0 0 auto;
  opacity: 0.72;
}

.pts-veh-plan-person-chip > span:last-child,
.pts-veh-plan-person-chip-email {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-veh-plan-person.is-selected .pts-veh-plan-person-chip {
  background: color-mix(in srgb, var(--tblr-primary) 8%, var(--tblr-bg-surface));
  border-color: color-mix(in srgb, var(--tblr-primary) 18%, var(--tblr-border-color));
}

.pts-veh-plan-days-hint {
  margin-top: 0;
}

.pts-veh-plan-days-list {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.pts-veh-plan-days-item {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--tblr-border-color);
  border-radius: 0.45rem;
  cursor: pointer;
  user-select: none;
  background: var(--tblr-bg-surface);
}

.pts-veh-plan-days-item.is-checked {
  border-color: color-mix(in srgb, var(--tblr-primary) 45%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 8%, var(--tblr-bg-surface));
}

.pts-veh-plan-days-item input {
  margin: 0;
  flex: 0 0 auto;
}

.pts-veh-plan-days-item-text {
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  min-width: 0;
}

.pts-veh-plan-days-item-text strong {
  font-size: 0.88rem;
  font-weight: 600;
}

.pts-veh-plan-days-item-text small {
  font-size: 0.75rem;
  color: var(--tblr-secondary);
}

/* Instroom — weekly intake board */
.pts-instroom {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  flex: 1 1 auto;
  min-height: 0;
}

.pts-instroom-weeknav {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.pts-instroom-weeknav .pts-instroom-next .icon {
  transform: scaleX(-1);
}

.pts-instroom-weeknav-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 8.5rem;
  line-height: 1.15;
}

.pts-instroom-weeknav-label strong {
  font-size: 0.95rem;
}

.pts-instroom-weeknav-label strong small {
  font-weight: 500;
  color: var(--tblr-secondary);
}

.pts-instroom-weeknav-label span {
  font-size: 0.7rem;
  color: var(--tblr-secondary);
  font-variant-numeric: tabular-nums;
}

.pts-instroom-kpis {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.6rem;
}

.pts-instroom-kpi {
  --pts-ins-accent: var(--tblr-primary);
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.7rem 0.9rem;
  border-radius: 0.75rem;
  background: var(--tblr-bg-surface);
  border: 1px solid var(--tblr-border-color);
  border-left: 3px solid var(--pts-ins-accent);
}

.pts-instroom-kpi span {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--tblr-secondary);
}

.pts-instroom-kpi strong {
  font-size: 1.35rem;
  font-variant-numeric: tabular-nums;
}

.pts-instroom-kpi.is-open { --pts-ins-accent: var(--tblr-orange); }
.pts-instroom-kpi.is-planned { --pts-ins-accent: var(--tblr-azure); }
.pts-instroom-kpi.is-started { --pts-ins-accent: var(--tblr-green); }
.pts-instroom-kpi.is-todo { --pts-ins-accent: var(--tblr-red); }

.pts-instroom-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  flex: 1 1 auto;
  min-height: 14rem;
  border: 1px dashed var(--tblr-border-color);
  border-radius: 0.9rem;
  color: var(--tblr-secondary);
}

.pts-instroom-empty p {
  margin: 0;
}

.pts-instroom-clients {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 34rem), 1fr));
  gap: 0.9rem;
  align-items: start;
}

.pts-instroom-client {
  border-radius: 0.9rem;
  background: var(--tblr-bg-surface);
  border: 1px solid var(--tblr-border-color);
  overflow: hidden;
}

.pts-instroom-client > header {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.75rem 0.9rem;
  background: color-mix(in srgb, var(--tblr-primary) 6%, var(--tblr-bg-surface));
  border-bottom: 1px solid var(--tblr-border-color);
}

.pts-instroom-client > header h3 {
  margin: 0;
  font-size: 0.98rem;
}

.pts-instroom-client > header small {
  font-size: 0.72rem;
  color: var(--tblr-secondary);
}

.pts-instroom-client-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 0.6rem;
  color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 14%, transparent);
}

.pts-instroom-client ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.pts-instroom-client li {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr) auto auto;
  align-items: center;
  gap: 0.75rem;
  padding: 0.6rem 0.9rem;
  border-top: 1px solid var(--tblr-border-color-translucent, var(--tblr-border-color));
}

.pts-instroom-client li:first-child {
  border-top: 0;
}

.pts-instroom-client li.is-cancelled {
  opacity: 0.55;
}

.pts-instroom-client li.is-cancelled .pts-instroom-vacancy strong {
  text-decoration: line-through;
}

.pts-instroom-vacancy,
.pts-instroom-candidate {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.pts-instroom-vacancy strong,
.pts-instroom-candidate strong {
  font-size: 0.86rem;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pts-instroom-candidate small {
  font-size: 0.7rem;
  color: var(--tblr-secondary);
}

.pts-instroom-candidate .text-secondary {
  font-size: 0.8rem;
  font-style: italic;
}

.pts-instroom-status {
  --pts-ins-tone: var(--tblr-orange);
  align-self: flex-start;
  padding: 0.05rem 0.5rem;
  border-radius: 999px;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--pts-ins-tone);
  background: color-mix(in srgb, var(--pts-ins-tone) 13%, transparent);
}

.pts-instroom-status.is-planned { --pts-ins-tone: var(--tblr-azure); }
.pts-instroom-status.is-started { --pts-ins-tone: var(--tblr-green); }
.pts-instroom-status.is-cancelled { --pts-ins-tone: var(--tblr-secondary); }

.pts-instroom-tasks {
  display: flex;
  gap: 0.3rem;
}

.pts-instroom-chip {
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  border: 1px dashed var(--tblr-border-color);
  background: transparent;
  color: var(--tblr-secondary);
  font-size: 0.7rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.14s ease, color 0.14s ease, border-color 0.14s ease;
}

.pts-instroom-chip:disabled {
  cursor: default;
}

.pts-instroom-chip.is-todo {
  border: 1px solid color-mix(in srgb, var(--tblr-red) 45%, transparent);
  color: var(--tblr-red);
  background: color-mix(in srgb, var(--tblr-red) 10%, transparent);
}

.pts-instroom-chip.is-done {
  border: 1px solid color-mix(in srgb, var(--tblr-green) 45%, transparent);
  color: var(--tblr-green);
  background: color-mix(in srgb, var(--tblr-green) 12%, transparent);
}

.pts-instroom-actions {
  display: flex;
  gap: 0.1rem;
}

.pts-instroom-task-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.6rem;
}

.pts-instroom-task-field {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding: 0.55rem 0.65rem;
  border-radius: 0.6rem;
  border: 1px solid var(--tblr-border-color);
}

.pts-instroom-task-field > span {
  font-size: 0.78rem;
  font-weight: 600;
}

.pts-instroom-task-field .btn-group .btn {
  flex: 1 1 0;
  font-size: 0.7rem;
  padding-inline: 0.3rem;
}

.pts-instroom-state.is-none {
  color: var(--tblr-body-color);
  background: var(--tblr-bg-surface-secondary, #e9ecef);
  border-color: var(--tblr-border-color);
}

.pts-instroom-state.is-todo {
  color: #fff;
  background: var(--tblr-red);
  border-color: var(--tblr-red);
}

.pts-instroom-state.is-done {
  color: #fff;
  background: var(--tblr-green);
  border-color: var(--tblr-green);
}

@media (max-width: 991.98px) {
  .pts-instroom-kpis {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .pts-instroom-task-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .pts-instroom-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pts-instroom-client li {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .pts-instroom-tasks {
    grid-column: 1 / -1;
  }
}

.pts-instroom-vacancy small {
  font-size: 0.7rem;
  color: var(--tblr-secondary);
}

.pts-instroom-an-panel {
  padding: 0.9rem 1rem;
  border-radius: 0.9rem;
  background: var(--tblr-bg-surface);
  border: 1px solid var(--tblr-border-color);
  min-width: 0;
}

.pts-instroom-an-panel h3 {
  margin: 0 0 0.7rem;
  font-size: 0.92rem;
}

.pts-instroom-an-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 30rem), 1fr));
  gap: 0.9rem;
  align-items: start;
}

.pts-instroom-an-weeks {
  display: flex;
  align-items: flex-end;
  gap: 0.3rem;
  height: 11rem;
  overflow-x: auto;
  padding-top: 1.1rem;
}

.pts-instroom-an-week {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  flex: 1 0 1.4rem;
  height: 100%;
  padding-bottom: 1.1rem;
}

.pts-instroom-an-bar {
  display: flex;
  flex-direction: column-reverse;
  width: 100%;
  max-width: 2.2rem;
  min-height: 2px;
  border-radius: 0.35rem 0.35rem 0 0;
  overflow: hidden;
  background: var(--tblr-border-color);
}

.pts-instroom-an-bar span { display: block; flex-basis: 0; }
.pts-instroom-an-bar .is-started, .pts-instroom-an-legend .is-started::before { background: var(--tblr-green); }
.pts-instroom-an-bar .is-planned, .pts-instroom-an-legend .is-planned::before { background: var(--tblr-azure); }
.pts-instroom-an-bar .is-open, .pts-instroom-an-legend .is-open::before { background: var(--tblr-orange); }

.pts-instroom-an-week small {
  position: absolute;
  bottom: 0;
  font-size: 0.64rem;
  color: var(--tblr-secondary);
}

.pts-instroom-an-week b {
  position: absolute;
  top: -1.05rem;
  font-size: 0.64rem;
  font-weight: 600;
}

.pts-instroom-an-legend {
  display: flex;
  gap: 1rem;
  margin-top: 0.6rem;
  font-size: 0.72rem;
  color: var(--tblr-secondary);
}

.pts-instroom-an-legend span::before {
  content: "";
  display: inline-block;
  width: 0.6rem;
  height: 0.6rem;
  margin-right: 0.3rem;
  border-radius: 0.15rem;
  vertical-align: -0.05rem;
}

.pts-instroom-an-rate {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.pts-instroom-an-tasks {
  display: grid;
  gap: 0.6rem;
}

.pts-instroom-an-tasks > div {
  display: grid;
  grid-template-columns: 5rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.8rem;
}

.pts-instroom-an-tasks small {
  font-size: 0.7rem;
  color: var(--tblr-secondary);
}

.pts-instroom-an-meter {
  height: 0.45rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--tblr-red) 18%, transparent);
  overflow: hidden;
}

.pts-instroom-an-meter i {
  display: block;
  height: 100%;
  background: var(--tblr-green);
}

.pts-instroom-an-open {
  list-style: none;
  margin: 0.9rem 0 0;
  padding: 0;
  max-height: 16rem;
  overflow-y: auto;
}

.pts-instroom-an-open li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.6rem;
  padding: 0.45rem 0;
  border-top: 1px solid var(--tblr-border-color);
}

.pts-instroom-an-open li > div:first-child {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.pts-instroom-an-open strong {
  font-size: 0.82rem;
}

.pts-instroom-an-open small {
  font-size: 0.7rem;
  color: var(--tblr-secondary);
}

.pts-instroom-candidate-hint {
  display: block;
  min-height: 1rem;
  margin-top: 0.25rem;
  font-size: 0.72rem;
  color: var(--tblr-secondary);
}

.pts-instroom-candidate-field {
  position: relative;
}

.pts-instroom-suggest {
  position: absolute;
  z-index: 5;
  left: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
  right: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
  margin: 0.25rem 0 0;
  padding: 0.25rem;
  list-style: none;
  max-height: 16rem;
  overflow-y: auto;
  background: var(--tblr-bg-surface);
  border: 1px solid var(--tblr-border-color);
  border-radius: var(--tblr-border-radius);
  box-shadow: 0 12px 28px -16px color-mix(in srgb, #000 45%, transparent);
}

.pts-instroom-suggest button {
  display: block;
  width: 100%;
  padding: 0.4rem 0.6rem;
  border: 0;
  border-radius: calc(var(--tblr-border-radius) - 2px);
  background: transparent;
  color: var(--tblr-body-color);
  text-align: left;
}

.pts-instroom-suggest button:hover,
.pts-instroom-suggest button.is-active {
  background: color-mix(in srgb, var(--tblr-primary) 10%, transparent);
  color: var(--tblr-primary);
}

/* ── FleetGo settings ─────────────────────────────────────────── */
.pts-fleetgo-detail {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}

.pts-fleetgo-status {
  display: inline-flex;
  align-items: center;
  padding: 0.1rem 0.55rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  margin-right: 0.45rem;
  color: var(--tblr-secondary);
  background: color-mix(in srgb, var(--tblr-secondary) 14%, transparent);
}

.pts-fleetgo-status.is-active {
  color: var(--tblr-success);
  background: color-mix(in srgb, var(--tblr-success) 14%, transparent);
}

.pts-fleetgo-status.is-idle {
  color: var(--tblr-warning);
  background: color-mix(in srgb, var(--tblr-warning) 16%, transparent);
}

.pts-fleetgo-sections {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 30rem), 1fr));
  gap: 0.9rem;
  align-items: start;
}

.pts-fleetgo-section {
  border-radius: 0.9rem;
  background: var(--tblr-bg-surface);
  border: 1px solid var(--tblr-border-color);
  overflow: hidden;
}

.pts-fleetgo-section-head {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid var(--tblr-border-color);
}

.pts-fleetgo-section-icon {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 0.6rem;
  color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 14%, transparent);
}

.pts-fleetgo-section-title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
}

.pts-fleetgo-section-hint {
  margin: 0.15rem 0 0;
  font-size: 0.78rem;
  color: var(--tblr-secondary);
}

.pts-fleetgo-section-body {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding: 0.9rem 1rem 1rem;
}

.pts-fleetgo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem 0.8rem;
}

.pts-fleetgo-field {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.pts-fleetgo-switches {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.pts-fleetgo-switch-row {
  padding: 0.55rem 0.7rem;
  border-radius: 0.65rem;
  border: 1px solid var(--tblr-border-color);
}

.pts-fleetgo-switch-row.is-on {
  border-color: color-mix(in srgb, var(--tblr-primary) 35%, var(--tblr-border-color));
  background: color-mix(in srgb, var(--tblr-primary) 5%, transparent);
}

.pts-fleetgo-switch {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  margin: 0;
  cursor: pointer;
}

.pts-fleetgo-switch .form-check-input {
  flex: 0 0 auto;
  margin-top: 0.15rem;
}

.pts-fleetgo-switch-copy {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.pts-fleetgo-switch-label {
  font-weight: 600;
  font-size: 0.86rem;
}

.pts-fleetgo-switch-hint {
  font-size: 0.76rem;
  color: var(--tblr-secondary);
}

.pts-fleetgo-switch-extra {
  margin-top: 0.55rem;
  padding-left: 2.6rem;
  max-width: 20rem;
}

.pts-fleetgo-connection-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.pts-fleetgo-connection-actions .btn .icon {
  margin-right: 0.35rem;
}

.pts-fleetgo-test {
  display: flex;
  gap: 0.65rem;
  padding: 0.7rem 0.85rem;
  border-radius: 0.7rem;
  border: 1px solid var(--pts-fg-accent);
  background: color-mix(in srgb, var(--pts-fg-accent) 8%, transparent);
  --pts-fg-accent: var(--tblr-danger);
}

.pts-fleetgo-test.is-ok {
  --pts-fg-accent: var(--tblr-success);
}

.pts-fleetgo-test-icon {
  color: var(--pts-fg-accent);
}

.pts-fleetgo-test-copy {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  font-size: 0.84rem;
}

.pts-fleetgo-hours {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.pts-fleetgo-days {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.pts-fleetgo-day {
  min-width: 2.9rem;
  padding: 0.3rem 0.55rem;
  border-radius: 999px;
  border: 1px solid var(--tblr-border-color);
  background: transparent;
  color: var(--tblr-secondary);
  font-size: 0.78rem;
  font-weight: 600;
}

.pts-fleetgo-day.is-active {
  border-color: var(--tblr-primary);
  color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
}

.pts-fleetgo-email-add {
  display: flex;
  gap: 0.5rem;
}

.pts-fleetgo-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.5rem;
}

.pts-fleetgo-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.2rem 0.3rem 0.2rem 0.6rem;
  border-radius: 999px;
  font-size: 0.78rem;
  background: color-mix(in srgb, var(--tblr-primary) 10%, transparent);
  color: var(--tblr-primary);
}

.pts-fleetgo-chip button {
  display: inline-flex;
  border: 0;
  padding: 0.1rem;
  border-radius: 999px;
  background: transparent;
  color: inherit;
}

.pts-fleetgo-chip .icon {
  width: 0.85rem;
  height: 0.85rem;
}

.pts-fleetgo-savebar {
  position: sticky;
  bottom: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 1rem;
  border-radius: 0.8rem;
  border: 1px solid var(--tblr-border-color);
  background: var(--tblr-bg-surface);
}

.pts-fleetgo-savebar.is-dirty {
  border-color: var(--tblr-primary);
  box-shadow: 0 -0.35rem 1rem rgba(0, 0, 0, 0.06);
}

.pts-fleetgo-savebar-actions {
  display: flex;
  gap: 0.5rem;
}

@media (max-width: 575.98px) {
  .pts-fleetgo-grid {
    grid-template-columns: 1fr;
  }

  .pts-fleetgo-switch-extra {
    padding-left: 0;
  }
}

.pts-fleetgo-syncbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 1rem;
  border-radius: 0.9rem;
  border: 1px solid var(--tblr-border-color);
  background: var(--tblr-bg-surface);
}

.pts-fleetgo-syncbar-copy {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.pts-fleetgo-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  gap: 0.75rem;
}

.pts-fleetgo-kpi {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.8rem 1rem;
  border-radius: 0.9rem;
  border: 1px solid var(--tblr-border-color);
  background: var(--tblr-bg-surface);
}

.pts-fleetgo-kpi-label {
  font-size: 0.75rem;
  color: var(--tblr-secondary);
}

.pts-fleetgo-kpi-value {
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1.2;
}

.pts-fleetgo-kpi-hint {
  font-size: 0.72rem;
  color: var(--tblr-secondary);
}

.pts-fleetgo-ride {
  display: inline-flex;
  align-items: center;
  padding: 0.05rem 0.5rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  white-space: nowrap;
}

.pts-fleetgo-ride.is-business {
  color: var(--tblr-success);
  background: color-mix(in srgb, var(--tblr-success) 14%, transparent);
}

.pts-fleetgo-ride.is-commute {
  color: var(--tblr-warning);
  background: color-mix(in srgb, var(--tblr-warning) 16%, transparent);
}

.pts-fleetgo-ride.is-private {
  color: var(--tblr-danger);
  background: color-mix(in srgb, var(--tblr-danger) 14%, transparent);
}

.pts-fleetgo-ride.is-idle {
  color: var(--tblr-secondary);
  background: color-mix(in srgb, var(--tblr-secondary) 14%, transparent);
}

.pts-fleetgo-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.75rem;
}

.pts-fleetgo-filters .pts-fleetgo-field {
  min-width: 10rem;
}

.pts-fleetgo-filter-switch {
  margin: 0 0 0.5rem;
}

.pts-fleetgo-bar {
  flex: 1 1 auto;
  min-width: 5rem;
  height: 0.45rem;
  border-radius: 999px;
  overflow: hidden;
  background: color-mix(in srgb, var(--tblr-secondary) 16%, transparent);
}

.pts-fleetgo-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--tblr-success);
}

.pts-fleetgo-bar.is-warning span {
  background: var(--tblr-warning);
}

.pts-fleetgo-bar.is-over span {
  background: var(--tblr-danger);
}

.pts-fleetgo-alert-row {
  display: grid;
  grid-template-columns: minmax(8rem, 14rem) 1fr auto auto;
  align-items: center;
  gap: 0.75rem;
}

.pts-fleetgo-limit-cell {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 8rem;
}

@media (max-width: 575.98px) {
  .pts-fleetgo-syncbar {
    flex-direction: column;
    align-items: stretch;
  }

  .pts-fleetgo-alert-row {
    grid-template-columns: 1fr auto;
  }
}

.pts-fleetgo-kpi.is-link {
  color: inherit;
  text-decoration: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.pts-fleetgo-kpi.is-link:hover {
  border-color: var(--tblr-primary);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--tblr-primary) 30%, transparent);
}

.pts-fleetgo-kpi.is-warn .pts-fleetgo-kpi-value {
  color: var(--tblr-danger);
}

.pts-fleetgo-ride-btn {
  border: 0;
  cursor: pointer;
}

.pts-fleetgo-score {
  min-width: 2.5rem;
  justify-content: center;
  font-size: 0.8rem;
}

.pts-fleetgo-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  border-bottom: 1px solid var(--tblr-border-color);
}

.pts-fleetgo-tab {
  padding: 0.5rem 0.9rem;
  border: 0;
  border-bottom: 2px solid transparent;
  background: none;
  color: var(--tblr-secondary);
  font-weight: 500;
  margin-bottom: -1px;
}

.pts-fleetgo-tab:hover {
  color: var(--tblr-body-color);
}

.pts-fleetgo-tab.is-active {
  color: var(--tblr-primary);
  border-bottom-color: var(--tblr-primary);
}

.pts-fleetgo-facts {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
  gap: 0.75rem;
}

.pts-fleetgo-facts > div {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.pts-fleetgo-pick-list {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  max-height: 22rem;
  overflow: auto;
}

.pts-fleetgo-pick {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.45rem 0.6rem;
  border-radius: 0.6rem;
  border: 1px solid transparent;
  cursor: pointer;
}

.pts-fleetgo-pick:hover {
  background: color-mix(in srgb, var(--tblr-secondary) 8%, transparent);
}

.pts-fleetgo-pick.is-active {
  border-color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 8%, transparent);
}

.pts-fleetgo-pick .form-check-input {
  margin: 0;
}

.pts-fleetgo-dtc-list {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.pts-fleetgo-dtc {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.7rem 0.9rem;
  border-radius: 0.8rem;
  border: 1px solid var(--tblr-border-color);
}

.pts-fleetgo-dtc.is-cleared {
  opacity: 0.65;
}

.pts-fleetgo-map {
  position: relative;
  overflow: hidden;
  border-radius: 0.9rem;
  border: 1px solid var(--tblr-border-color);
  background: #e9e6df;
  touch-action: none;
  cursor: grab;
  user-select: none;
  outline: none;
  --pts-map-ctl-bg: rgba(255, 255, 255, 0.97);
  --pts-map-ctl-fg: #1d273b;
  --pts-map-ctl-border: rgba(15, 23, 42, 0.12);
  --pts-map-ctl-hover: rgba(15, 23, 42, 0.06);
  --pts-map-ctl-shadow: 0 1px 2px rgba(15, 23, 42, 0.12), 0 4px 14px rgba(15, 23, 42, 0.14);
}

.pts-fleetgo-map.is-dark {
  background: #1c1f24;
}

.pts-fleetgo-map:focus-visible {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--tblr-primary) 45%, transparent);
}

.pts-fleetgo-map:active {
  cursor: grabbing;
}

.pts-fleetgo-map:fullscreen {
  border-radius: 0;
  border: 0;
}

.pts-fleetgo-map-tile {
  position: absolute;
  width: 256px;
  height: 256px;
  max-width: none;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.25s ease;
}

.pts-fleetgo-map-tile.is-loaded {
  opacity: 1;
}

.pts-fleetgo-map.is-layer-light .pts-fleetgo-map-tile,
.pts-map-layer-preview.is-layer-light img {
  filter: grayscale(1) brightness(1.06) contrast(0.9);
}

.pts-fleetgo-map.is-layer-dark .pts-fleetgo-map-tile,
.pts-map-layer-preview.is-layer-dark img {
  filter: invert(1) hue-rotate(180deg) brightness(0.9) contrast(0.88) saturate(0.55);
}

.pts-map-back {
  position: absolute;
  z-index: 6;
  left: 50%;
  bottom: 2.4rem;
  transform: translateX(-50%);
  padding: 0.45rem 0.95rem;
  border: 0;
  border-radius: 999px;
  background: var(--tblr-primary);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 600;
  white-space: nowrap;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.3);
  animation: pts-map-pop 0.18s ease-out;
}

.pts-map-back:hover {
  filter: brightness(1.08);
}

.pts-map-auto {
  position: absolute;
  z-index: 5;
  top: 0.75rem;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.2rem 0.65rem;
  border-radius: 999px;
  background: var(--pts-map-ctl-bg);
  color: var(--pts-map-ctl-fg);
  font-size: 0.7rem;
  font-weight: 600;
  box-shadow: var(--pts-map-ctl-shadow);
  pointer-events: none;
}

.pts-map-auto::before {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--tblr-primary);
}

.pts-fleetgo-map-path {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.pts-fleetgo-map-path polyline {
  fill: none;
  stroke: var(--tblr-primary);
  stroke-width: 4;
  stroke-linejoin: round;
  stroke-linecap: round;
}

.pts-fleetgo-map-path polyline.pts-fleetgo-map-path-casing {
  stroke: #fff;
  stroke-width: 7;
  opacity: 0.9;
}

.pts-fleetgo-map-marker {
  position: absolute;
  z-index: 2;
  width: 1rem;
  height: 1rem;
  padding: 0;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  border: 2.5px solid #fff;
  background: #64748b;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(0, 0, 0, 0.08);
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.pts-fleetgo-map-marker:hover,
.pts-fleetgo-map-marker:focus-visible {
  z-index: 4;
  transform: translate(-50%, -50%) scale(1.25);
  outline: none;
}

.pts-fleetgo-map-marker.is-active {
  background: #16a34a;
}

.pts-fleetgo-map-marker.is-active::after {
  content: "";
  position: absolute;
  inset: -2.5px;
  border-radius: 50%;
  border: 2px solid #16a34a;
  animation: pts-map-pulse 2s ease-out infinite;
  pointer-events: none;
}

.pts-fleetgo-map-marker.is-stale {
  background: #f59f00;
  opacity: 0.85;
}

.pts-fleetgo-map-marker.is-start {
  background: var(--tblr-primary);
}

.pts-fleetgo-map-marker.is-end {
  background: var(--tblr-danger);
}

.pts-fleetgo-map-marker.is-selected {
  z-index: 5;
  width: 1.35rem;
  height: 1.35rem;
  box-shadow:
    0 0 0 5px color-mix(in srgb, var(--tblr-primary) 35%, transparent),
    0 3px 8px rgba(0, 0, 0, 0.4);
}

@keyframes pts-map-pulse {
  0% {
    transform: scale(1);
    opacity: 0.8;
  }
  100% {
    transform: scale(2.4);
    opacity: 0;
  }
}

.pts-fleetgo-map-heading {
  position: absolute;
  inset: -0.7rem;
  pointer-events: none;
}

.pts-fleetgo-map-heading::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  border-left: 0.36rem solid transparent;
  border-right: 0.36rem solid transparent;
  border-bottom: 0.55rem solid #16a34a;
  filter: drop-shadow(0 0 1.5px #fff) drop-shadow(0 1px 1px rgba(0, 0, 0, 0.3));
}

.pts-fleetgo-map-marker.is-stale .pts-fleetgo-map-heading::before {
  border-bottom-color: #f59f00;
}

.pts-fleetgo-map-label {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 0.45rem);
  transform: translateX(-50%);
  display: none;
  padding: 0.1rem 0.45rem;
  border-radius: 0.35rem;
  background: rgba(255, 255, 255, 0.97);
  color: #1d273b;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
  pointer-events: none;
}

.pts-fleetgo-map-label::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 0.25rem solid transparent;
  border-top-color: rgba(255, 255, 255, 0.97);
}

.pts-fleetgo-map-marker.has-label .pts-fleetgo-map-label,
.pts-fleetgo-map-marker:hover .pts-fleetgo-map-label,
.pts-fleetgo-map-marker:focus-visible .pts-fleetgo-map-label {
  display: block;
}

.pts-fleetgo-map-marker.is-selected .pts-fleetgo-map-label {
  background: var(--tblr-primary);
  color: #fff;
}

.pts-fleetgo-map-marker.is-selected .pts-fleetgo-map-label::after {
  border-top-color: var(--tblr-primary);
}

.pts-map-cluster {
  position: absolute;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.1rem;
  height: 2.1rem;
  padding: 0;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  border: 3px solid rgba(255, 255, 255, 0.95);
  background: color-mix(in srgb, var(--tblr-primary) 88%, #000);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--tblr-primary) 25%, transparent), 0 2px 8px rgba(0, 0, 0, 0.3);
  cursor: pointer;
  transition: transform 0.15s ease;
}

.pts-map-cluster.is-md {
  width: 2.5rem;
  height: 2.5rem;
  font-size: 0.8rem;
}

.pts-map-cluster.is-lg {
  width: 2.95rem;
  height: 2.95rem;
  font-size: 0.85rem;
}

.pts-map-cluster:hover,
.pts-map-cluster:focus-visible {
  transform: translate(-50%, -50%) scale(1.1);
  outline: none;
}

.pts-map-cluster-active {
  position: absolute;
  top: -0.4rem;
  right: -0.45rem;
  min-width: 1.1rem;
  height: 1.1rem;
  padding: 0 0.25rem;
  border-radius: 999px;
  border: 2px solid #fff;
  background: #16a34a;
  font-size: 0.6rem;
  line-height: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pts-map-toolbar {
  position: absolute;
  z-index: 6;
  top: 0.75rem;
  right: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.pts-map-ctl-group {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 0.55rem;
  background: var(--pts-map-ctl-bg);
  box-shadow: var(--pts-map-ctl-shadow);
}

.pts-map-ctl-group button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.1rem;
  height: 2.1rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--pts-map-ctl-fg);
  transition: background 0.15s ease, color 0.15s ease;
}

.pts-map-ctl-group button + button {
  border-top: 1px solid var(--pts-map-ctl-border);
}

.pts-map-ctl-group button:hover:not(:disabled) {
  background: var(--pts-map-ctl-hover);
}

.pts-map-ctl-group button:disabled {
  opacity: 0.35;
  cursor: default;
}

.pts-map-ctl-group button.is-active {
  color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 12%, transparent);
}

.pts-map-ctl-group .icon {
  width: 1.05rem;
  height: 1.05rem;
}

.pts-map-layers {
  position: absolute;
  z-index: 6;
  left: 0.75rem;
  bottom: 1.85rem;
}

.pts-map-layers-toggle {
  position: relative;
  display: block;
  width: 4.6rem;
  height: 4.6rem;
  padding: 0;
  overflow: hidden;
  border-radius: 0.7rem;
  border: 2px solid #fff;
  background: #ddd;
  box-shadow: var(--pts-map-ctl-shadow);
  transition: transform 0.15s ease;
}

.pts-map-layers-toggle:hover {
  transform: translateY(-1px);
}

.pts-map-layers-toggle-label {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  padding: 0.6rem 0.2rem 0.2rem;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.75), transparent);
  color: #fff;
  font-size: 0.66rem;
  font-weight: 600;
}

.pts-map-layers-toggle-label .icon {
  width: 0.75rem;
  height: 0.75rem;
}

.pts-map-layer-preview {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
}

.pts-map-layer-preview img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  pointer-events: none;
}

.pts-map-layers-panel {
  position: absolute;
  left: 0;
  bottom: calc(100% + 0.5rem);
  width: 17.5rem;
  padding: 0.7rem;
  border-radius: 0.8rem;
  background: var(--pts-map-ctl-bg);
  color: var(--pts-map-ctl-fg);
  box-shadow: var(--pts-map-ctl-shadow);
  cursor: default;
  animation: pts-map-pop 0.14s ease-out;
}

@keyframes pts-map-pop {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.pts-map-layers-title {
  margin-bottom: 0.5rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}

.pts-map-layers-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
}

.pts-map-layers-option {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font-size: 0.72rem;
  font-weight: 500;
}

.pts-map-layers-option .pts-map-layer-preview {
  height: 3.6rem;
  overflow: hidden;
  border-radius: 0.55rem;
  border: 2px solid transparent;
  box-shadow: 0 0 0 1px var(--pts-map-ctl-border);
  transition: border-color 0.15s ease;
}

.pts-map-layers-option:hover .pts-map-layer-preview {
  border-color: color-mix(in srgb, var(--tblr-primary) 45%, transparent);
}

.pts-map-layers-option.is-active {
  color: var(--tblr-primary);
  font-weight: 700;
}

.pts-map-layers-option.is-active .pts-map-layer-preview {
  border-color: var(--tblr-primary);
}

.pts-map-footer {
  position: absolute;
  z-index: 5;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 0.5rem;
  pointer-events: none;
}

.pts-map-scale {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.2rem;
  padding: 0.1rem 0.35rem;
  border-radius: 0.3rem;
  background: rgba(255, 255, 255, 0.85);
  color: #1d273b;
  font-size: 0.64rem;
  font-weight: 600;
}

.pts-map-scale-bar {
  height: 0.35rem;
  border: 1.5px solid #1d273b;
  border-top: 0;
}

.pts-fleetgo-map-attribution {
  padding: 0.1rem 0.45rem;
  border-top-left-radius: 0.35rem;
  background: rgba(255, 255, 255, 0.82);
  color: #475569;
  font-size: 0.62rem;
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 70%;
  pointer-events: auto;
}

.pts-fleetgo-map-attribution:hover {
  color: #1d273b;
  text-decoration: underline;
}

.pts-fleetgo-map.is-dark .pts-map-scale,
.pts-fleetgo-map.is-dark .pts-fleetgo-map-attribution {
  background: rgba(17, 20, 26, 0.75);
  color: #cbd5e1;
}

.pts-fleetgo-map.is-dark .pts-map-scale-bar {
  border-color: #cbd5e1;
}

[data-bs-theme="dark"] .pts-fleetgo-map {
  --pts-map-ctl-bg: rgba(30, 34, 42, 0.97);
  --pts-map-ctl-fg: #e2e8f0;
  --pts-map-ctl-border: rgba(255, 255, 255, 0.1);
  --pts-map-ctl-hover: rgba(255, 255, 255, 0.08);
}

[data-bs-theme="dark"] .pts-map-layers-title {
  color: #94a3b8;
}

@media (max-width: 575.98px) {
  .pts-map-layers-toggle {
    width: 3.6rem;
    height: 3.6rem;
  }

  .pts-map-layers-panel {
    width: min(17.5rem, calc(100vw - 3rem));
  }
}

.pts-fleetgo-mapfilters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}

.pts-fleetgo-mapfilter {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  border: 1px solid var(--tblr-border-color);
  background: var(--tblr-bg-surface);
  color: inherit;
  font-size: 0.78rem;
}

.pts-fleetgo-mapfilter.is-active {
  border-color: var(--tblr-primary);
  background: color-mix(in srgb, var(--tblr-primary) 10%, var(--tblr-bg-surface));
  color: var(--tblr-primary);
}

.pts-fleetgo-mapfilter-count {
  font-variant-numeric: tabular-nums;
  color: var(--tblr-secondary);
}

.pts-fleetgo-mapsource {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  color: var(--tblr-secondary);
}

.pts-fleetgo-mapsource.is-warning {
  color: var(--tblr-warning);
}

.pts-fleetgo-mapsource-dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--tblr-warning);
  flex: 0 0 auto;
}

.pts-fleetgo-mapsource-dot.is-live {
  background: var(--tblr-success);
  animation: pts-fleetgo-pulse 2s ease-in-out infinite;
}

@keyframes pts-fleetgo-pulse {
  0%,
  100% {
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--tblr-success) 55%, transparent);
  }
  50% {
    box-shadow: 0 0 0 0.3rem transparent;
  }
}

.pts-fleetgo-maplist-speed {
  margin-left: auto;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--tblr-success);
  white-space: nowrap;
}

.pts-customer-modal-fleetgo-live {
  width: min(72rem, calc(100vw - 2rem));
}

.pts-customer-modal-fleetgo-live .pts-customer-modal-body {
  padding: 0;
  overflow: hidden;
}

.pts-fleetgo-livemodal {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(19rem, 1fr);
  height: min(38rem, calc(100vh - 12rem));
  min-height: 24rem;
}

.pts-fleetgo-livemodal-map {
  position: relative;
  min-height: 0;
  border-right: 1px solid var(--tblr-border-color);
  background: color-mix(in srgb, var(--tblr-secondary) 6%, transparent);
}

.pts-fleetgo-livemodal-map .pts-fleetgo-map {
  border: 0;
  border-radius: 0;
}

.pts-fleetgo-livemodal-nomap {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 1.5rem;
  text-align: center;
  color: var(--tblr-secondary);
}

.pts-fleetgo-livemodal-age {
  position: absolute;
  z-index: 5;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  background: var(--tblr-bg-surface);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
}

.pts-fleetgo-livemodal-age.is-stale {
  color: var(--tblr-warning);
}

.pts-fleetgo-livemodal-data {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  min-height: 0;
  overflow-y: auto;
  padding: 1rem 1.1rem;
}

.pts-fleetgo-livemodal-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 0.95rem;
  border-radius: 0.85rem;
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--tblr-primary) 12%, transparent),
    color-mix(in srgb, var(--tblr-primary) 3%, transparent)
  );
  border: 1px solid color-mix(in srgb, var(--tblr-primary) 20%, transparent);
}

.pts-fleetgo-livemodal-driver {
  display: flex;
  flex-direction: column;
  margin-top: 0.55rem;
  min-width: 0;
}

.pts-fleetgo-livemodal-speed {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  line-height: 1;
  white-space: nowrap;
}

.pts-fleetgo-livemodal-speed strong {
  font-size: 2.1rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.pts-fleetgo-livemodal-speed > span {
  font-size: 0.75rem;
  color: var(--tblr-secondary);
  margin-top: 0.2rem;
}

.pts-fleetgo-livemodal-heading {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  margin-top: 0.45rem !important;
}

.pts-fleetgo-livemodal-heading-arrow {
  display: inline-flex;
  transition: transform 0.4s ease;
}

.pts-fleetgo-livemodal-heading-arrow .icon {
  width: 0.9rem;
  height: 0.9rem;
}

.pts-fleetgo-livemodal-block {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  overflow-wrap: anywhere;
}

.pts-fleetgo-livemodal-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}

.pts-fleetgo-livemodal-facts > div {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.55rem 0.7rem;
  border-radius: 0.65rem;
  border: 1px solid var(--tblr-border-color);
  min-width: 0;
}

.pts-fleetgo-livemodal-facts span {
  font-size: 0.72rem;
  color: var(--tblr-secondary);
}

.pts-fleetgo-livemodal-facts strong {
  font-size: 0.9rem;
  overflow-wrap: anywhere;
}

.pts-fleetgo-livemodal-facts > div.is-warning strong {
  color: var(--tblr-warning);
}

.pts-fleetgo-livemodal-facts > div.is-danger strong {
  color: var(--tblr-danger);
}

.pts-fleetgo-livemodal-alert {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem 0.7rem;
  border-radius: 0.65rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--tblr-danger);
  background: color-mix(in srgb, var(--tblr-danger) 10%, transparent);
}

.pts-fleetgo-livemodal-trips {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pts-fleetgo-livemodal-trips li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8rem;
  padding: 0.35rem 0;
  border-bottom: 1px dashed var(--tblr-border-color);
}

.pts-fleetgo-livemodal-trips li:last-child {
  border-bottom: 0;
}

.pts-fleetgo-livemodal-trip-time,
.pts-fleetgo-livemodal-trip-km {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  color: var(--tblr-secondary);
}

.pts-fleetgo-livemodal-trip-route {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 767.98px) {
  .pts-fleetgo-livemodal {
    grid-template-columns: 1fr;
    grid-template-rows: 16rem auto;
    height: auto;
    max-height: calc(100vh - 9rem);
    overflow-y: auto;
  }

  .pts-fleetgo-livemodal-map {
    border-right: 0;
    border-bottom: 1px solid var(--tblr-border-color);
  }

  .pts-fleetgo-livemodal-data {
    overflow: visible;
  }
}

.pts-fleetgo-mapcard-status {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  align-self: flex-start;
  padding: 0.15rem 0.6rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  background: color-mix(in srgb, var(--tblr-secondary) 14%, transparent);
  color: var(--tblr-secondary);
}

.pts-fleetgo-mapcard-status.is-driving,
.pts-fleetgo-mapcard-status.is-idle {
  background: color-mix(in srgb, var(--tblr-success) 14%, transparent);
  color: var(--tblr-success);
}

.pts-fleetgo-mapcard-status.is-stale {
  background: color-mix(in srgb, var(--tblr-warning) 16%, transparent);
  color: var(--tblr-warning);
}

.pts-fleetgo-maplayout {
  display: grid;
  grid-template-columns: minmax(14rem, 18rem) 1fr;
  gap: 0.75rem;
  flex: 1 1 auto;
  min-height: 28rem;
}

.pts-fleetgo-maplist {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-height: 0;
}

.pts-fleetgo-maplist-items {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  overflow: auto;
  flex: 1 1 0;
  min-height: 10rem;
}

.pts-fleetgo-maplist-item {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.1rem;
  padding: 0.5rem 0.65rem;
  border-radius: 0.7rem;
  border: 1px solid var(--tblr-border-color);
  background: var(--tblr-bg-surface);
  color: inherit;
  text-align: left;
}

.pts-fleetgo-maplist-item.is-active {
  border-color: var(--tblr-primary);
}

.pts-fleetgo-maplist-item:disabled {
  opacity: 0.6;
}

.pts-fleetgo-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: var(--tblr-secondary);
  flex: 0 0 auto;
}

.pts-fleetgo-dot.is-active,
.pts-fleetgo-dot.is-driving {
  background: var(--tblr-success);
}

.pts-fleetgo-dot.is-idle {
  background: color-mix(in srgb, var(--tblr-success) 55%, var(--tblr-warning));
}

.pts-fleetgo-dot.is-parked {
  background: var(--tblr-secondary);
}

.pts-fleetgo-dot.is-hidden {
  background: transparent;
  border: 1px dashed var(--tblr-secondary);
}

.pts-fleetgo-mapcanvas {
  position: relative;
  min-height: 28rem;
}

.pts-fleetgo-mapcanvas .pts-fleetgo-map {
  position: absolute;
  inset: 0;
}

.pts-fleetgo-map-empty {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  max-width: 22rem;
  padding: 0.75rem 1rem;
  border-radius: 0.8rem;
  background: var(--tblr-bg-surface);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
  text-align: center;
}

.pts-fleetgo-fine-results {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.pts-fleetgo-fine-card {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding: 0.9rem 1.1rem;
  border-radius: 0.9rem;
  border: 1px solid var(--tblr-border-color);
  background: var(--tblr-bg-surface);
}

.pts-fleetgo-fine-card.is-exact {
  border-color: var(--tblr-success);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--tblr-success) 35%, transparent);
}

@media (max-width: 767.98px) {
  .pts-fleetgo-maplayout {
    grid-template-columns: 1fr;
  }

  .pts-fleetgo-maplist-items {
    max-height: 14rem;
  }
}
