/* Mescart dashboard shell. Served by Mescart Core. */
:root {
  --tblr-primary: #066fd1;
  --tblr-primary-rgb: 6, 111, 209;
  --mescart-nav: #0f172a;
  --mescart-nav-soft: #1e293b;
  --mescart-page: #f1f5f9;
  --mescart-line: #cbd5e1;
  --mescart-blue: #066fd1;
  --mescart-green: #16846f;
  --mescart-red: #b42318;
  --mescart-yellow: #a16207;
  --mescart-table-row-height: 35px;
}

body {
  background: var(--mescart-page);
}

.hidden {
  display: none !important;
}

.brand-mark {
  align-items: center;
  background: var(--mescart-blue);
  border-radius: 8px;
  color: #ffffff;
  display: inline-flex;
  flex: 0 0 36px;
  font-size: 21px;
  height: 36px;
  justify-content: center;
  width: 36px;
}

.brand-copy {
  display: grid;
  line-height: 1.16;
  min-width: 0;
}

.brand-name {
  color: #ffffff;
  font-size: 16px;
  font-weight: 700;
}

.brand-subtitle {
  color: rgba(255, 255, 255, 0.7);
  font-size: 12px;
  font-weight: 500;
}

.mescart-main-navbar {
  background: var(--mescart-nav);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  overflow: visible;
  position: sticky;
  top: 0;
  z-index: 1050;
}

.mescart-main-navbar .container-fluid,
.mescart-main-navbar .navbar-nav {
  overflow: visible;
}

.mescart-main-navbar .nav-link {
  border-radius: 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: 15px;
  min-height: 40px;
  padding-left: 10px;
  padding-right: 10px;
}

.mescart-main-navbar .nav-link:hover,
.mescart-main-navbar .nav-link.active {
  background: var(--mescart-nav-soft);
  color: #ffffff;
}

.mescart-main-navbar .btn {
  border-color: rgba(255, 255, 255, 0.14);
  color: #ffffff;
}

.mescart-main-navbar .btn:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  color: #ffffff;
}

.page-header .container-fluid,
.page-body .container-fluid {
  max-width: none;
  padding-left: 20px;
  padding-right: 20px;
}

.page-wrapper {
  background: var(--mescart-page);
}

.mescart-header-search {
  display: flex;
  align-items: center;
}

.mescart-page-heading {
  min-width: 0;
}

.mescart-page-heading .page-title,
.mescart-page-heading .page-pretitle {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.mescart-header-search .input-group {
  width: min(34rem, 62vw);
}

.mescart-search-field::-webkit-search-cancel-button {
  display: none;
}

.mescart-search-hidden {
  display: none !important;
}

.card {
  border-color: var(--mescart-line);
  border-radius: 8px;
  box-shadow: none;
}

.modal-backdrop.show {
  opacity: 0.46;
}

.modal-content {
  border: 1px solid #94a3b8;
  border-radius: 8px;
  box-shadow: 0 26px 70px rgba(15, 23, 42, 0.32);
}

/* Keep Tabler's scroll constraint through forms nested inside modal-content. */
.modal-dialog-scrollable .modal-content > form {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  max-height: 100%;
  overflow: hidden;
}

.modal-dialog-scrollable .modal-body {
  min-height: 0;
}

.modal-header,
.modal-footer {
  background: #f8fafc;
}

.modal-header {
  border-bottom-color: #cbd5e1;
}

.modal-footer {
  border-top-color: #cbd5e1;
}

.was-validated .input-icon:has(.form-control:invalid) + .invalid-feedback,
.was-validated .input-icon:has(.form-control.is-invalid) + .invalid-feedback,
.was-validated .input-icon:has(.form-select:invalid) + .invalid-feedback,
.was-validated .input-icon:has(.form-select.is-invalid) + .invalid-feedback {
  display: block;
}

/* Shared validation is error-only; successful fields retain normal Tabler styling. */
.was-validated, .is-valid {
  --tblr-form-valid-border-color: var(--tblr-border-color);
  --tblr-form-valid-color: var(--tblr-body-color);
}
.was-validated .form-control:valid, .form-control.is-valid { background-image: none; }
body .was-validated .form-control:valid, body .form-control.is-valid { padding-right: 1rem; }
body .was-validated .form-control-sm:valid, body .form-control-sm.is-valid { padding-right: .5rem; }
body .was-validated .form-select:valid:not([multiple]):not([size]),
body .was-validated .form-select:valid:not([multiple])[size="1"],
body .form-select.is-valid:not([multiple]):not([size]), body .form-select.is-valid:not([multiple])[size="1"] {
  --tblr-form-select-bg-icon: none;
  padding-right: 2.5rem;
}
.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {
  background-color: var(--tblr-primary); border-color: var(--tblr-primary);
}
.was-validated .form-control:valid:focus, .form-control.is-valid:focus,
.was-validated .form-select:valid:focus, .form-select.is-valid:focus,
.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {
  border-color: var(--tblr-primary);
  box-shadow: 0 0 0 .25rem rgba(var(--tblr-primary-rgb), .2);
}
form .valid-feedback, form .valid-tooltip { display: none !important; }
.mescart-error-validation .form-control:invalid { background-image: none; }
body .mescart-error-validation .form-select:invalid:not([multiple]):not([size]) {
  --tblr-form-select-bg-icon: none; padding-right: 2.5rem;
}
.btn.btn-icon { inline-size: 2.5rem; min-inline-size: 2.5rem; block-size: 2.5rem; flex-shrink: 0; padding: 0; }
.btn.btn-icon.btn-sm { inline-size: 2rem; min-inline-size: 2rem; block-size: 2rem; }
.btn.btn-icon.btn-lg { inline-size: 3rem; min-inline-size: 3rem; block-size: 3rem; }

.was-validated .input-icon .form-control:invalid,
.was-validated .input-icon .form-control.is-invalid,
.was-validated .input-icon .form-select:invalid,
.was-validated .input-icon .form-select.is-invalid {
  border-color: var(--tblr-form-invalid-border-color);
}

.select-icon .form-select {
  padding-left: 2.75rem;
}

.select-icon .input-icon-addon {
  pointer-events: none;
  z-index: 3;
}

.customer-country-select .country-separator-option {
  text-align: center;
}

.prompt-textarea {
  min-height: 260px;
}

.invoice-line-number {
  width: 8rem;
}

.invoice-line-action {
  width: 3rem;
}

.invoice-form-total {
  align-items: center;
  display: flex;
  gap: 14px;
}

.invoice-totals-list {
  margin-left: auto;
  max-width: 28rem;
}

.invoice-total-row {
  align-items: baseline;
  display: flex;
  gap: 24px;
  justify-content: space-between;
  padding: 2px 0;
}

.invoice-total-row strong {
  font-size: 1.05rem;
}

.invoice-tabler-card {
  border-color: var(--mescart-line);
  box-shadow: none;
}

.mescart-pagination-footer {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 10px;
  justify-content: center;
}

.card-subtitle {
  color: var(--tblr-secondary);
  margin-top: 4px;
}

/* Keep Tabler's sort icons visible inside the shared fixed-width grid headers. */
th[data-sort-table] > .table-sort {
  display: flex;
  align-items: center;
  gap: .25rem;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  padding: 0;
}

th[data-sort-table] > .table-sort::after {
  flex: 0 0 1rem;
  margin-left: 0;
}

.mescart-sort-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
th.text-end > .table-sort { justify-content: flex-end; }
th[data-sort-table] > .table-sort:focus-visible { outline: 2px solid var(--tblr-primary); outline-offset: 2px; }

.invoice-row {
  cursor: pointer;
}

.invoice-row:hover {
  background: rgba(var(--tblr-primary-rgb), 0.04);
}


.status-dot {
  border-radius: 999px;
  display: inline-block;
  height: 8px;
  margin-right: 6px;
  width: 8px;
}

.status-enabled,
.status-active,
.status-ok,
.status-paid,
.status-success,
.status-live,
.status-connected {
  background: var(--mescart-green);
}

.status-draft,
.status-pending,
.status-creating,
.status-open,
.status-issued,
.status-partial,
.status-outstanding,
.status-warning,
.status-info {
  background: var(--mescart-yellow);
}

.status-blocked,
.status-suspended,
.status-failed,
.status-revoked,
.status-disabled,
.status-locked,
.status-overdue,
.status-error {
  background: var(--mescart-red);
}

.status-in-dev { background-color: var(--tblr-yellow); }
.status-archived,
.status-removed,
.status-deprecated,
.status-deleted,
.status-void,
.status-unknown {
  background: #667085;
}

.table th {
  white-space: nowrap;
}

.table td {
  vertical-align: middle;
}

/* Shared data-grid density; leave modal forms and invoice documents unchanged. */
.view-section .table:not(.modal .table) > tbody > tr {
  height: var(--mescart-table-row-height);
}

.view-section .table:not(.modal .table) > tbody > tr > td {
  padding-top: 2px;
  padding-bottom: 2px;
}

.view-section .table:not(.modal .table) > tbody > tr > td .btn,
.view-section .table:not(.modal .table) > tbody > tr > td .form-select-sm,
.view-section .table:not(.modal .table) > tbody > tr > td .form-control-sm {
  min-height: 28px;
  padding-top: 2px;
  padding-bottom: 2px;
}

.table code {
  white-space: nowrap;
}

.webspace-row.is-retryable {
  cursor: pointer;
}

.webspace-row:hover td {
  background: #f8fafc;
}

.site-detail-panel {
  background: #ffffff;
  border: 1px solid var(--mescart-line);
  border-radius: 8px;
  height: 100%;
  padding: 16px;
}

.health-mini-card {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  height: 100%;
  padding: 10px;
}

.truncate-cell {
  max-width: 280px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.user-role-cell {
  min-width: 150px;
}

.user-role-select {
  min-width: 140px;
}

.deployment-switches {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 22px;
}

.deployment-switches .form-check {
  margin: 0;
}

.deployment-check-box {
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 8px;
  color: #92400e;
  font-size: 14px;
  line-height: 1.35;
  min-height: 46px;
  padding: 10px 12px;
}

.deployment-check-box.is-ok {
  background: #ecfdf3;
  border-color: #86efac;
  color: #166534;
}

.deployment-check-box.is-warning {
  background: #fff7ed;
  border-color: #fed7aa;
  color: #9a3412;
}

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

.login-card {
  width: min(440px, 100%);
}

#notice.mescart-toast {
  align-items: center;
  border-radius: 8px;
  box-shadow: 0 22px 54px rgba(15, 23, 42, 0.24);
  display: flex;
  font-weight: 700;
  justify-content: center;
  left: 50%;
  margin: 0 !important;
  max-width: calc(100vw - 32px);
  min-height: 0;
  padding: 12px 18px;
  pointer-events: none;
  position: fixed;
  text-align: center;
  top: 50%;
  transform: translate(-50%, -50%) scale(1);
  transition: opacity 120ms ease, transform 120ms ease, visibility 120ms ease;
  width: min(420px, calc(100vw - 32px));
  z-index: 2100;
}

#notice.mescart-toast.alert-danger {
  background: #fef2f2;
  border-color: #fecaca;
  color: #991b1b;
}

#notice.mescart-toast.alert-success {
  background: #ecfdf3;
  border-color: #86efac;
  color: #166534;
}

#notice.mescart-toast.alert-warning {
  background: #fffbeb;
  border-color: #fde68a;
  color: #92400e;
}

#notice.mescart-toast.hidden {
  display: block !important;
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.97);
  visibility: hidden;
}

.notice {
  min-height: 20px;
}

.chat-layout {
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
  min-height: 560px;
}

.chat-list {
  border-right: 1px solid var(--mescart-line);
  overflow-y: auto;
  padding-right: 12px;
}

.chat-row {
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
  display: block;
  min-height: 0;
  padding: 10px;
  text-align: left;
  width: 100%;
}

.chat-row.active,
.chat-row:hover {
  background: #ffffff;
  border-color: var(--mescart-line);
}

.chat-messages {
  background: #ffffff;
  border: 1px solid var(--mescart-line);
  border-radius: 8px;
  display: grid;
  grid-template-rows: 1fr auto;
  min-height: 560px;
  overflow: hidden;
}

.message-list {
  overflow-y: auto;
  padding: 18px;
}

.bubble {
  border: 1px solid var(--mescart-line);
  border-radius: 8px;
  margin-bottom: 12px;
  max-width: min(760px, 90%);
  overflow-wrap: anywhere;
  padding: 12px 14px;
  white-space: pre-wrap;
}

.bubble.user {
  background: #eef5ff;
  border-color: #c8dcf5;
  margin-left: auto;
}

.bubble.assistant {
  background: #f8fafc;
}

.bubble small {
  color: #667085;
  display: block;
  font-weight: 700;
  margin-bottom: 4px;
  text-transform: uppercase;
}

.composer {
  background: #f8fafc;
  border-top: 1px solid var(--mescart-line);
  padding: 12px;
}

.composer-row {
  display: grid;
  gap: 10px;
  grid-template-columns: 1fr auto;
}

textarea.form-control {
  min-height: 52px;
  resize: vertical;
}

.empty-state {
  color: #667085;
  padding: 22px;
  text-align: center;
}

.mescart-list-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 1rem;
}

.mescart-page-size { justify-self: start; min-width: 0; max-width: 100%; }
.mescart-user-page-size { width: 4.5rem; }
.mescart-pagination { justify-self: center; }
.mescart-page-summary { justify-self: end; text-align: right; }

@media (max-width: 991.98px) {
  .mescart-list-footer { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .mescart-page-size { grid-column: 1; grid-row: 1; }
  .mescart-page-summary { grid-column: 2; grid-row: 1; }
  .mescart-pagination { grid-column: 1 / -1; grid-row: 2; max-width: 100%; overflow-x: auto; }
  .mescart-pagination > .pagination { width: max-content; justify-content: flex-start !important; }
}

@media (max-width: 575.98px) {
  .mescart-list-footer { grid-template-columns: minmax(0, 1fr); }
  .mescart-page-summary { grid-column: 1; grid-row: 3; justify-self: center; text-align: center; }
}

.mescart-data-grid .mescart-grid-select,
table .mescart-grid-select {
  width: 2.5rem !important;
  min-width: 2.5rem;
  max-width: 2.5rem;
  padding: 0.25rem 0.5rem !important;
  text-align: center;
  vertical-align: middle;
}
.mescart-export-toolbar [hidden] { display: none !important; }
.mescart-export-toolbar .dropdown-menu { min-width: 10rem; }
.mescart-export-toolbar [data-export-count] { white-space: nowrap; }
.mescart-export-toolbar [data-export-result]:empty { display: none; }
@media (max-width: 575.98px) {
  .mescart-export-toolbar { max-width: 100%; row-gap: 0.375rem; }
}
.customer-list-table {
  table-layout: fixed;
}

.ssl-list-table { table-layout: fixed; }
.ssl-list-table th, .ssl-list-table td { white-space: nowrap; }
/* The domain takes the space left after percentage columns and fixed Actions. */
.ssl-list-table th:is([data-grid-original-index="1"],:nth-child(1 of :not(.mescart-grid-select)):not([data-grid-original-index])) { width: auto; }
.ssl-list-table th:is([data-grid-original-index="2"],:nth-child(2 of :not(.mescart-grid-select)):not([data-grid-original-index])), .ssl-list-table th:is([data-grid-original-index="4"],:nth-child(4 of :not(.mescart-grid-select)):not([data-grid-original-index])) { width: 10%; }
.ssl-list-table th:is([data-grid-original-index="3"],:nth-child(3 of :not(.mescart-grid-select)):not([data-grid-original-index])) { width: 13%; }
.ssl-list-table th:is([data-grid-original-index="5"],:nth-child(5 of :not(.mescart-grid-select)):not([data-grid-original-index])) { width: 15%; }
.ssl-list-table th:is([data-grid-original-index="6"],:nth-child(6 of :not(.mescart-grid-select)):not([data-grid-original-index])), .ssl-list-table th:is([data-grid-original-index="8"],:nth-child(8 of :not(.mescart-grid-select)):not([data-grid-original-index])) { width: 12%; }
.ssl-list-table th:is([data-grid-original-index="7"],:nth-child(7 of :not(.mescart-grid-select)):not([data-grid-original-index])) { width: 8%; }

/* Keep default headers out of the first paint, while retaining layout measurements. */
[data-grid-layout-root] :is(.view-section .table:not(.modal .table), [data-related-panel] .table):not(.invoice-tabler-card .table, [data-editable-grid], .mescart-grid-ready) { visibility: hidden; }
.mescart-grid-loading-container { position: relative; min-height: 5rem; }
.mescart-grid-loading {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  gap: .5rem; padding: .75rem; color: var(--tblr-secondary); z-index: 1;
}
.mescart-grid-loading [hidden] { display: none !important; }
.mescart-grid-layout-controls { margin-left: auto; flex: 0 0 auto; }
.mescart-grid-layout-controls:has(+ .table-responsive) { justify-content: flex-end; padding: .5rem; }
.mescart-grid-layout-controls [hidden] { display: none !important; }
.mescart-column-handle { display: none; }
.mescart-column-handle[hidden] { display: none !important; }
.mescart-grid-adjusting th { position: relative; padding-right: 1rem; }
.mescart-grid-adjusting .mescart-column-handle {
  display: block; position: absolute; top: 0; right: 0; bottom: 0;
  width: 12px; cursor: col-resize; touch-action: none; z-index: 2;
}
.mescart-column-handle::after {
  content: ''; position: absolute; top: 5px; bottom: 5px; right: 3px;
  width: 1px; background: var(--tblr-primary, #206bc4);
}
.mescart-column-handle:focus-visible { outline: 2px solid var(--tblr-primary, #206bc4); outline-offset: -2px; }
.mescart-grid-dragging { user-select: none; }
table.mescart-grid-sized { table-layout: fixed; width: var(--mescart-grid-width) !important; min-width: 0 !important; }
.mescart-grid-sized > colgroup > col,
.mescart-grid-sized > thead > tr > th { width: var(--mescart-column-width) !important; }
.mescart-grid-sized td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mescart-grid-sized td.mescart-grid-actions,
.mescart-grid-sized td.mescart-grid-controls { overflow: visible; }
.mescart-grid-pinned .mescart-grid-select,
.mescart-grid-pinned .mescart-grid-fixed-actions {
  position: sticky; z-index: 2;
  background-color: var(--tblr-bg-surface, #fff);
}
.mescart-grid-pinned .mescart-grid-select { left: 0; }
.mescart-grid-pinned .mescart-grid-fixed-actions {
  right: 0; width: 5.5rem !important; min-width: 5.5rem; max-width: 5.5rem;
}
.mescart-grid-pinned thead :is(.mescart-grid-select, .mescart-grid-fixed-actions) { z-index: 3; }
.mescart-grid-pinned td.mescart-grid-fixed-actions:has(.dropdown-menu.show) { z-index: 4; }

/* Shared list truncation: preserve controls, menus and full invoice documents. */
.mescart-data-grid { --mescart-grid-menu-width: 5.5rem; width: 100%; min-width: 0; table-layout: fixed; }
.mescart-data-grid thead th { letter-spacing: 0; }
.mescart-data-grid th.mescart-grid-actions { width: var(--mescart-grid-menu-width); }
.mescart-data-grid > :is(thead, tbody) > tr > :is(th, td).mescart-grid-actions { padding-left: .5rem; padding-right: .5rem; }
.table-responsive:has(> .mescart-data-grid) { min-width: 0; max-width: 100%; width: 100%; }
.mescart-data-grid > :is(thead, tbody) > tr > :is(th, td):not(.mescart-grid-controls) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mescart-data-grid .mescart-grid-value,
.mescart-data-grid .mescart-grid-value > :is(div, span, a, button, code, strong) {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mescart-data-grid .mescart-grid-value > :is(a, code, strong) { display: inline-block; vertical-align: middle; }
.mescart-data-grid td[colspan] { white-space: normal !important; overflow-wrap: anywhere; }
/* Full-width loading/empty/error rows stay readable inside horizontally scrolling grids. */
.mescart-data-grid > tbody > tr > td.mescart-grid-status { overflow: visible; text-overflow: clip; }
.mescart-data-grid .mescart-grid-message {
  position: sticky;
  left: var(--mescart-grid-message-start, 0px);
  max-width: max(1px, calc(var(--mescart-grid-visible-width, 100%) - var(--mescart-grid-message-padding, 0px)));
  white-space: normal;
  overflow-wrap: anywhere;
}

.mescart-data-grid td .badge { display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; }
.mescart-data-grid :is(.user-role-cell, .user-role-select) { min-width: 0; max-width: 100%; }
.mescart-data-grid .mescart-grid-controls .btn { max-width: 100%; }
.view-section .card { min-width: 0; }
.view-section .card-header > * { min-width: 0; }
.view-section .card-actions { max-width: 100%; margin-right: 0; }
.view-section .card-actions > :is(select, input, .btn) { min-width: 0; max-width: 100%; }
#sslServerFilter { text-overflow: ellipsis; }
#sslRenewalTitle { overflow-wrap: anywhere; }
@media (max-width: 767px) {
  .mescart-data-grid { min-width: 40rem; }
  .ssl-list-table.mescart-data-grid { min-width: 0; }
  .ssl-list-table :is(th, td):is(:is([data-grid-original-index="2"],:nth-child(2 of :not(.mescart-grid-select)):not([data-grid-original-index])), :is([data-grid-original-index="3"],:nth-child(3 of :not(.mescart-grid-select)):not([data-grid-original-index])), :is([data-grid-original-index="4"],:nth-child(4 of :not(.mescart-grid-select)):not([data-grid-original-index])), :is([data-grid-original-index="7"],:nth-child(7 of :not(.mescart-grid-select)):not([data-grid-original-index])), :is([data-grid-original-index="8"],:nth-child(8 of :not(.mescart-grid-select)):not([data-grid-original-index]))):not([colspan]) { display: none; }
  .ssl-list-table th:is([data-grid-original-index="5"],:nth-child(5 of :not(.mescart-grid-select)):not([data-grid-original-index])) { width: 27%; }
  .ssl-list-table th:is([data-grid-original-index="6"],:nth-child(6 of :not(.mescart-grid-select)):not([data-grid-original-index])) { width: 25%; }
}

.customer-list-table th,
.customer-list-table td {
  white-space: nowrap;
}

.customer-reference-column { width: 8rem; }
.customer-name-column { width: 22%; }
.customer-company-column { width: 22%; }
.customer-status-column { width: 8rem; }
.customer-actions-column { width: var(--mescart-grid-menu-width, 5.5rem); }

.mescart-actions-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 1.75rem;
  padding: 0;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.mescart-actions-toggle { outline: 0!important; box-shadow: none!important; }
.mescart-actions-toggle:focus-visible { background-color: var(--tblr-gray-200, #e5e7eb)!important; }

.mescart-row-actions .dropdown-menu { max-width: calc(100vw - 2rem); }
.mescart-row-actions .dropdown-item { white-space: normal; }

@media (max-width: 920px) {
  .chat-layout {
    grid-template-columns: 1fr;
  }

  .chat-list {
    border-bottom: 1px solid var(--mescart-line);
    border-right: 0;
    max-height: 240px;
    padding-bottom: 12px;
    padding-right: 0;
  }
}

@media (max-width: 640px) {
  .page-header .container-fluid,
  .page-body .container-fluid {
    padding-left: 12px;
    padding-right: 12px;
  }

  .composer-row {
    grid-template-columns: 1fr;
  }
}
.entity-workspace .nav-link {
  font-size: 0.875rem;
  padding: 0.5rem 0.75rem;
}
.entity-workspace [data-related-search] {
  max-width: 100%;
}
/* Editable cutting dimensions are not data-grid rows. */
.cut-workspace { background: var(--tblr-bg-surface); border: 1px solid var(--mescart-line); }
.cut-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .75rem; border-bottom: 1px solid var(--mescart-line); background: var(--tblr-bg-surface-secondary); }
.cut-toolbar > .form-select { width: 9rem; }
.cut-toolbar > #cutName { width: 13rem; min-width: 8rem; flex: 1 1 10rem; max-width: 24rem; }
.cut-toolbar-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-left: auto; }
.cut-editor-grid { display: grid; grid-template-columns: minmax(360px, 420px) minmax(0, 1fr); }
.cut-sidebar { margin: 0; padding: 0; border-right: 1px solid var(--mescart-line); background: var(--tblr-bg-surface-secondary); max-height: calc(100vh - 14rem); overflow: auto; }
.cut-section { border-bottom: 1px solid var(--mescart-line); }
.cut-section > summary { padding: .65rem .75rem; font-weight: 600; background: var(--tblr-bg-surface-tertiary, #e8ebed); }
.cut-grid-toolbar { display: flex; justify-content: space-between; align-items: center; padding: .2rem .5rem; }
.cut-sheet-table { table-layout: fixed; width: 100%; margin: 0; }
.cut-sheet-table > tbody.cut-piece { display: table-row-group; }
.cut-sheet-table > tbody:nth-of-type(even) { background: rgba(var(--tblr-secondary-rgb), .06); }
.cut-sheet-table > thead th { padding: .3rem .4rem; text-transform: none; letter-spacing: 0; font-size: .75rem; font-weight: 600; }
.cut-sheet-table td { padding: .2rem .3rem; border-right: 1px solid var(--mescart-line); }
.cut-sheet-table .form-control { padding: .2rem .25rem; border: 1px solid transparent; background: transparent; min-width: 0; height: 2rem; }
.cut-sheet-table .form-control:focus { background: var(--tblr-bg-surface); border-color: var(--tblr-primary); }
.cut-sheet-table .cut-qty { width: 3.5rem; }
.cut-sheet-table .cut-row-buttons { width: 4rem; border-right: 0; }
.cut-sheet-extra > td { padding: .35rem; }
.cut-sheet-extra > td > div { display: flex; flex-wrap: wrap; align-items: end; gap: .5rem; }
.cut-sheet-extra label { flex: 1 1 7rem; min-width: 0; margin: 0; }
.cut-sheet-extra .form-label { font-size: .7rem; margin-bottom: .2rem; }
.cut-sheet-extra .form-control { border-color: var(--mescart-line); }
.cut-row-excluded input:disabled, .cut-row-excluded select:disabled { opacity: .5; }
.cut-options-body { padding: .75rem; }
.cut-option-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0; margin-bottom: .65rem; min-height: 2rem; font-size: .8125rem; }
.cut-option-row > .form-control { width: 7.5rem; flex-shrink: 0; }
.cut-option-row.form-switch { padding-left: 0; }
.cut-option-row.form-switch .form-check-input { margin: 0; float: none; flex-shrink: 0; }
.cut-results { min-width: 0; padding: 1rem; }
.cut-result-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.cut-viewport { overflow: auto; height: 52vh; max-height: 65vh; min-height: 360px; padding: 1rem; background: var(--tblr-bg-surface-secondary); border: 1px solid var(--mescart-line); }
.cut-results #cutSummary { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: .5rem; margin-inline: 0; }
.cut-results #cutSummary > .col { min-width: 0; padding: 0; }
#cutLayouts:empty { min-height: 420px; }
.cut-bom-table { width: 100%; font-size: .75rem; }
.cut-bom-table th, .cut-bom-table td { padding: .4rem; border-bottom: 1px solid var(--mescart-line); }
.cut-piece { display: grid; grid-template-columns: minmax(9rem, 1.6fr) minmax(4.5rem, .7fr) repeat(var(--cut-detail-columns, 2), minmax(7.5rem, 1fr)) 2rem; align-items: end; gap: .75rem; }
.cut-input { min-width: 0; margin: 0; }
.cut-input .form-label { font-size: .75rem; margin-bottom: .25rem; }
.cut-piece [data-cut-remove] { justify-self: end; }
.cut-result-state { border-left: 3px solid var(--tblr-border-color); padding: .75rem 1rem; margin-bottom: 1rem; }
.cut-result-state[data-state="failed"] { color: var(--tblr-danger); border-color: var(--tblr-danger); background: rgba(var(--tblr-danger-rgb), .05); }
.cut-result-state[data-state="completed"] { border-color: var(--tblr-success); }
.cut-result-state[data-state="partial"] { border-color: var(--tblr-warning); }
.cut-result-state[data-state="queued"], .cut-result-state[data-state="running"] { border-color: var(--tblr-primary); }
.cut-sidebar div.cut-piece { grid-template-columns: repeat(2, minmax(0,1fr)); padding: .75rem; gap: .5rem; }
@media (max-width: 991px) {
  .cut-editor-grid { grid-template-columns: minmax(0,1fr); }
  .cut-sidebar { max-height: none; border-right: 0; border-bottom: 1px solid var(--mescart-line); }
  .cut-toolbar-actions { width: 100%; margin-left: 0; }
  .cut-results { padding: .75rem; }
  .cut-viewport { min-height: 240px; }
  #cutLayouts:empty { min-height: 240px; }
}
.cut-plan { display: block; width: 100%; height: auto; max-width: none; margin: auto; background: var(--tblr-bg-surface); }
.cut-key { display: inline-block; flex: 0 0 12px; width: 12px; height: 12px; }
.cut-response, #authTestResult { max-height: 320px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; }
#cutResultStatus, #apiTestTitle, #cutUnplaced { overflow-wrap: anywhere; }
#cutlistTester fieldset { min-width: 0; }
.mescart-address-dropdown {
  position: static;
  min-width: 0;
  width: 100%;
  margin-top: .5rem;
  padding: 0;
  overflow: hidden;
}
.mescart-address-options {
  position: relative;
  display: block;
  max-height: min(22rem, 45vh);
  max-height: min(22rem, 45dvh);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.mescart-address-options .list-group-item { width: 100%; border-radius: 0; }
.mescart-address-form {
  height: clamp(26rem, calc(100vh - 15rem), 54rem);
  height: clamp(26rem, calc(100dvh - 15rem), 54rem);
  margin: 0;
}
.mescart-address-form > .card-header { flex: 0 0 auto; }
.mescart-address-form-scroll {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.mescart-address-form-scroll:focus-visible { outline: 2px solid var(--tblr-primary); outline-offset: -2px; }
.mescart-address-form .form-label { margin-bottom: .25rem; }
.mescart-address-form .form-control[readonly] { background-color: var(--tblr-bg-surface-secondary); }
#addressRawResponse { max-height: 24rem; overflow: auto; }
.mescart-package-preview { display: block; width: 100%; height: calc(100dvh - 220px); min-height: 520px; border: 1px solid var(--tblr-border-color); }
@media (max-width: 767px) { .mescart-package-preview { height: 78dvh; min-height: 540px; } }

/* Shared toolbar standard: titles left, one action group at the right edge. */
.card-header>.card-actions{margin-left:auto!important;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.5rem}
.card-header>.card-actions>.btn{order:1}
.card-header>.card-actions>.form-select{font-size:.75rem;min-height:1.875rem;padding-top:.25rem;padding-bottom:.25rem}
.card-header>.card-title,.card-header>nav:first-child{margin-right:auto}
.card-header:has(>.card-actions,>.btn)>.mescart-export-toolbar,.card-header:has(>.card-actions,>.btn)>.mescart-grid-layout-controls{margin-left:0!important}
/* Row text links keep the table typography while action buttons use btn-sm. */
.mescart-data-grid .btn-link{font-size:inherit}

/* Standard page grids meet the navigation and viewport edges; keep cell padding. */
.mescart-list-page .page-wrapper>.page-header{display:none}
.mescart-list-page .page-body{margin:0}
.mescart-list-page .page-body>.container-fluid{padding:0;max-width:none}
.mescart-page-grid.card{border-radius:0;border-left:0;border-right:0;border-top:0;margin-bottom:0!important}
.mescart-page-grid>.card-header,.mescart-page-grid>.card-footer{border-radius:0}
.mescart-page-grid>.card-header{flex-wrap:wrap;gap:.5rem}
.mescart-page-grid>.card-header>div:has(>.card-title){margin-right:auto;min-width:0}
.mescart-page-grid .mescart-header-search{min-width:0;max-width:100%}
.mescart-page-grid .mescart-header-search .input-group{width:min(24rem,calc(100vw - 2.5rem))}
.mescart-page-grid>.card-header>.btn{margin-left:0!important}
.mescart-page-grid>.card-header>.card-actions{min-width:0;max-width:100%}
.mescart-list-page .mescart-list-row{margin:0}
.mescart-list-page .mescart-list-row>.col-12{padding:0;margin-top:0}

/* Standard grid header: title, search with every filter, Export / Add / options. */
.mescart-grid-header{display:grid!important;grid-template-columns:minmax(7rem,1fr) auto minmax(12rem,1fr);grid-template-areas:"heading search actions";gap:.75rem!important;align-items:center}
.mescart-grid-header>.mescart-grid-heading{grid-area:heading;min-width:0;margin:0!important}
.mescart-grid-search-area{grid-area:search;display:flex;align-items:center;min-width:0;max-width:100%;width:auto;justify-self:center}
.mescart-grid-search-area>.mescart-grid-search{flex:0 1 auto;min-width:0;max-width:100%!important;width:auto!important}
.mescart-grid-search-area .input-group,.mescart-grid-search-area>.input-group{width:max-content!important;max-width:100%;flex-wrap:wrap!important;row-gap:.25rem}
.mescart-grid-search-area input[type=search]{flex:0 1 15rem!important;width:15rem!important;min-width:6rem!important;max-width:15rem!important}
.mescart-grid-filter{display:flex;align-items:center;flex:0 1 auto;min-width:0;max-width:100%;margin:0!important}
/* Nested filter fields share Tabler's single border seam; no shadows in any state. */
.mescart-grid-search-area :is(.input-group,.form-control,.form-select,.btn,.btn-close,.input-group-text){box-shadow:none!important}
.mescart-grid-search-area .input-group>.mescart-grid-filter:not(:first-child){margin-left:calc(-1 * var(--tblr-border-width,1px))!important}
.mescart-grid-search-area .mescart-grid-filter:focus-within{position:relative;z-index:5}
.mescart-grid-search-area :is(.form-control,.form-select,.btn,.btn-close):focus{outline:0!important}
.mescart-grid-search-area :is(.form-control,.form-select):focus{border-color:var(--tblr-border-color)}
/* Keyboard focus changes the existing seam, without adding a ring or shadow. */
.mescart-grid-search-area :is(.form-control,.form-select,.btn):focus-visible,
.mescart-grid-search-area .input-group-text:has(>.btn-close:focus-visible){border-color:var(--tblr-gray-500,#6b7280)}
.mescart-grid-search-area .input-group-text:has(>.btn-close:focus-visible){position:relative;z-index:5}

.mescart-grid-filter :is(.form-select,.form-control){width:auto!important;min-width:7rem;max-width:11rem;border-radius:0;margin:0}
.mescart-grid-filter:not(:has(select:not([hidden]):not(.hidden),input:not([hidden]):not(.hidden))){display:none}
@media(max-width:575.98px){
 .mescart-grid-search-area{width:100%}
 .mescart-grid-search-area>.mescart-grid-search,.mescart-grid-search-area .input-group{width:100%!important}
 .mescart-grid-search-area input[type=search]{flex:1 1 8rem!important;width:8rem!important;max-width:none!important}
 .mescart-grid-search-area .input-group{row-gap:0}
 .mescart-grid-search-area .input-group>.mescart-grid-filter{order:2;flex:1 0 100%;width:100%;margin-left:0!important;margin-top:calc(-1 * var(--tblr-border-width,1px))!important}
 .mescart-grid-search-area .input-group>.mescart-grid-filter:not(:first-child){margin-left:0!important}
 .mescart-grid-filter div:has(.form-select,.form-control){flex:1 1 100%;width:100%;min-width:0}
 .mescart-grid-filter :is(.form-select,.form-control){flex:1;width:100%!important;max-width:100%}
 /* Connected full-width filter rows need square internal joins, not rounded notches. */
 .mescart-grid-search-area .input-group:has(>.mescart-grid-filter :is(select,input):not([hidden]):not(.hidden)) :is(.form-control,.form-select,.btn,.input-group-text){border-radius:0!important}
}
.mescart-grid-actions-bar{grid-area:actions;min-width:0;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.5rem}
.mescart-grid-actions-bar>:is(.card-actions,.d-flex){display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.5rem;min-width:0;max-width:100%}
.mescart-grid-actions-bar>:is(.card-actions,.mescart-export-toolbar,.mescart-grid-layout-controls,.btn,.ms-auto){margin:0!important}
.mescart-grid-actions-bar>.card-actions{padding-left:0}
.mescart-grid-actions-bar .btn{box-shadow:none!important}
.mescart-grid-actions-bar .btn:focus{outline:0!important}
.mescart-grid-actions-bar .btn:focus-visible{border-color:var(--tblr-gray-500,#6b7280)}
.mescart-grid-actions-bar>.mescart-grid-layout-controls{align-self:center}
.mescart-grid-no-heading{grid-template-columns:minmax(0,2fr) minmax(12rem,1fr);grid-template-areas:"search actions"}
@media(max-width:991.98px){.mescart-grid-header{grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "search" "actions"}.mescart-grid-no-heading{grid-template-areas:"search" "actions"}}

/* Shared grid selection stays compact; the surrounding cell remains clickable. */
.mescart-grid-select .form-check-input { width:1rem!important; height:1rem!important; min-width:1rem; border-radius:.2rem; margin:0!important; vertical-align:middle; }
table :is(th,td).mescart-grid-select { cursor:pointer; }

/* Column choices apply only to approved rendered cells, keeping native table layout. */
.mescart-data-grid .mescart-grid-column-hidden{display:none!important}
.mescart-column-dialog .modal-dialog{max-width:32rem}
.mescart-column-choice{display:flex;align-items:center;gap:.5rem;padding:.5rem 0}
.mescart-column-choice .form-check{min-width:0}
.mescart-column-choice .form-check-label{overflow-wrap:anywhere}
.mescart-column-choice .form-check-input{width:1rem;height:1rem}
.mescart-column-choice [data-column-drag]{cursor:grab;touch-action:pan-y}
.mescart-column-choice [data-column-drag]:active{cursor:grabbing}
@media(max-width:575.98px){.mescart-column-dialog .modal-dialog{margin:.5rem}.mescart-column-choice{gap:.375rem}}
/* Package table policy is a staged form editor, not a selectable data grid. */
.package-data-field{display:grid;grid-template-columns:minmax(12rem,1fr) 7rem 6rem 8rem 5rem;gap:.5rem;align-items:center}
.package-data-dialog .form-check-input{width:16px;height:16px}
.package-data-search{max-width:100%;width:20rem;text-align:right}
:is(.package-data-dialog,.package-api-dialog) .modal-content,:is(.package-data-dialog,.package-api-dialog) button,:is(.package-data-dialog,.package-api-dialog) input,:is(.package-data-dialog,.package-api-dialog) select,.package-data-search .input-group{box-shadow:none}
.package-data-search [hidden]{display:none!important}
:is(.package-data-dialog,.package-api-dialog) button:focus,:is(.package-data-dialog,.package-api-dialog) input:focus,:is(.package-data-dialog,.package-api-dialog) select:focus{box-shadow:none;outline:none;border-color:#adb5bd}
@media(max-width:767px){.package-data-field{grid-template-columns:repeat(3,minmax(0,1fr))}.package-data-field>div:first-child{grid-column:1/-1}.package-data-field>div:last-child{grid-column:1/-1;justify-content:flex-end}.package-data-search{width:100%}}

/* Package Library master/detail selection; native grid geometry stays shared. */
#packageRows [data-package-row]{cursor:pointer}#packageRows .mescart-package-select{font:inherit;font-weight:600;border:0;padding:0;background:none;color:var(--tblr-primary);text-align:left;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#packageRows .mescart-package-select:focus-visible{outline:0;background:var(--tblr-bg-surface-secondary,#f1f5f9);text-decoration:underline}#packageRows .table-active{--tblr-table-accent-bg:var(--tblr-primary-lt,#eaf2fc)}

#packageRows>tr.table-active>td{background-color:#eaf2fc;box-shadow:none}#openPackageDefaultsButton{flex-shrink:0;box-shadow:none}#packageApiTitle{overflow-wrap:anywhere}

/* Package relationships distinguish implementation, demo grants and installation defaults. */
.package-api-access { display: grid; gap: .25rem; }
.package-api-access .badge { width: fit-content; }
.package-api-use { white-space: normal; min-width: 7rem; }
.package-api-note { white-space: normal; font-size: .75rem; }
#packageApiSearchForm { max-width: 24rem; }

/* Site themes are staged in their own dialog; no preview changes the live site. */
#siteThemeModal .site-theme-option{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:14px;border:1px solid var(--tblr-border-color);border-radius:4px;cursor:pointer}
#siteThemeModal .site-theme-option:has(input:checked){border-color:var(--tblr-primary)}
#siteThemeModal .site-theme-swatch{display:block;width:100%;overflow:hidden;border:1px solid #c9d6e4;border-radius:3px}
#siteThemeModal .site-theme-swatch>span{display:block;height:14px;background:#fff;border-bottom:1px solid #dfe6ee}
#siteThemeModal .site-theme-swatch>span:last-child{border-bottom:0;background:#f8fafc}
#siteThemeModal [data-theme-choice="navy-blue"] .site-theme-swatch>span:nth-child(1){background:#173b63}
#siteThemeModal [data-theme-choice="navy-blue"] .site-theme-swatch>span:nth-child(2){background:#234e7a}
#siteThemeModal [data-theme-choice="navy-blue"] .site-theme-swatch>span:nth-child(3){background:#d8e8f7}
#siteThemeModal [data-theme-choice="navy-blue"] .site-theme-swatch>span:nth-child(4){background:#eaf2fb}
