.clients-page .orders-table-card {
    min-width: 0;
}

.clients-page .service-orders-table .mud-table-cell:last-child {
    width: 3.5rem;
}

.client-status-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.375rem;
    padding: 0.0625rem 0.5rem;
    border-radius: var(--elev-radius-pill);
    font-family: var(--elev-font-sans);
    font-size: var(--elev-text-xs-size);
    font-weight: 600;
    line-height: var(--elev-text-xs-line);
    white-space: nowrap;
}

.client-status-pill.is-active {
    color: var(--elev-success);
    background: var(--elev-success-soft);
}

.client-status-pill.is-inactive {
    color: var(--elev-muted);
    background: var(--elev-bg-pale);
}

body:has(.customer-detail-dialog) .app-shell > .sidebar,
body:has(.customer-detail-dialog) .topbar {
    z-index: calc(var(--mud-zindex-dialog, 1400) + 20);
}

.mud-dialog-container:has(.customer-detail-dialog) {
    position: fixed !important;
    top: var(--elev-topbar-height) !important;
    right: 0 !important;
    bottom: 0 !important;
    left: var(--elev-sidebar-collapsed-width) !important;
    width: auto !important;
    height: auto !important;
    align-items: stretch;
    justify-content: stretch;
    overflow: hidden;
    border-radius: 1.25rem 0 0 0 !important;
    background: var(--elev-bg-pale);
    transition: left 0.24s ease;
}

body:has(.sidebar:hover) .mud-dialog-container:has(.customer-detail-dialog),
body:has(.sidebar:focus-within) .mud-dialog-container:has(.customer-detail-dialog) {
    left: var(--elev-sidebar-width) !important;
}

.mud-dialog-container:has(.customer-detail-dialog) > .mud-overlay {
    position: absolute !important;
    inset: 0 !important;
    border-radius: 1.25rem 0 0 0 !important;
    background: var(--elev-bg-pale) !important;
    backdrop-filter: none !important;
    opacity: 1 !important;
}

.customer-detail-dialog.mud-dialog {
    position: relative;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    max-height: none !important;
    margin: 0 !important;
    /* Match in-shell container / .app-shell__content top-left radius (R16). */
    border-radius: 1.25rem 0 0 0 !important;
    background: var(--elev-bg-pale);
    box-shadow: none;
    transform: none !important;
}

.customer-detail-dialog .mud-dialog-title,
.customer-detail-dialog .d-none {
    display: none !important;
}

.customer-detail-dialog .mud-dialog-content,
.customer-detail-dialog .customer-detail-dialog__content {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 1.25rem !important;
    overflow-x: hidden !important;
    overflow-y: auto;
    background: var(--elev-bg-pale);
}

.customer-detail-dialog--loading,
.customer-detail-dialog--loading .mud-dialog-content,
.customer-detail-dialog--loading .customer-detail-dialog__content {
    background: var(--elev-bg-pale) !important;
    box-shadow: none !important;
}

.customer-detail-dialog--loading .customer-detail-dialog__content {
    position: relative;
    min-height: 100%;
    overflow: hidden;
    padding: 0 !important;
}

.customer-detail-dialog--loading .elev-page-loading-overlay.mud-overlay {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    border-radius: 0 !important;
}

.client-detail-page {
    display: grid;
    gap: 1.25rem;
    width: 100%;
    min-width: 0;
}

.client-detail-header {
    display: grid;
    gap: 0.75rem;
}

.client-detail-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.client-detail-heading__title {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.client-detail-heading h1 {
    margin: 0;
    color: var(--elev-text-bold);
    font-family: var(--elev-font-sans);
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    font-weight: 700;
    line-height: 1.2;
}

.client-detail-edit.mud-button-root {
    flex: 0 0 auto;
    border-color: var(--elev-border-soft);
    border-radius: 0.625rem;
    text-transform: none;
}

.client-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(19rem, 26rem);
    gap: 1.25rem;
    align-items: stretch;
}

.client-detail-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
}

.client-detail-card > .elev-ui-card__header {
    padding-bottom: 0.5rem;
    border-bottom: 0;
}

.client-detail-card > .elev-ui-card__body {
    flex: 1 1 auto;
    padding-top: 0.5rem;
}

.client-detail-card h2,
.client-contracts-list-header h2,
.client-contract-detail-header h2 {
    margin: 0;
    color: var(--elev-text-bold);
    font-family: var(--elev-font-sans);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.35;
}

.client-basic-fields,
.client-contract-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem 1rem;
}

.client-address-map {
    position: relative;
    width: 100%;
    height: 12rem;
    margin-bottom: 0.875rem;
    overflow: hidden;
    border: 1px solid var(--elev-border-soft);
    border-radius: 0.875rem;
    background: var(--elev-background);
}

.client-address-map__canvas {
    width: 100%;
    height: 100%;
}

.client-address-map .leaflet-container {
    width: 100%;
    height: 100%;
    z-index: 0;
}

.client-address-line {
    margin: 0 0 0.875rem;
    color: var(--elev-foreground);
    font-size: var(--elev-text-sm-size);
    font-weight: 500;
    line-height: var(--elev-text-sm-line);
}

.client-address-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.client-contracts-grid {
    display: grid;
    grid-template-columns: minmax(20rem, 25rem) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: stretch;
}

.client-contracts-list-card,
.client-contract-detail-card {
    min-width: 0;
}

.client-contracts-list-card {
    display: flex;
    flex-direction: column;
}

.client-contracts-list {
    display: grid;
    flex: 1 1 auto;
    align-content: start;
    gap: 0.5rem;
}

.client-contract-item {
    display: grid;
    grid-template-columns: 1.75rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.75rem;
    border: 1px solid var(--elev-border-soft);
    border-radius: 0.75rem;
    color: var(--elev-foreground);
    background: var(--elev-surface);
    text-align: left;
    cursor: pointer;
}

.client-contract-item:hover,
.client-contract-item.is-selected {
    border-color: var(--elev-primary);
    background: var(--elev-primary-soft);
}

.client-contract-item__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border: 1px solid var(--elev-border-soft);
    border-radius: 0.4rem;
    color: var(--elev-muted);
    font-size: var(--elev-text-sm-size);
    background: transparent;
}

.client-contract-item.is-selected .client-contract-item__number,
.preventive-plan-detail__category-card.is-selected .client-contract-item__number {
    color: var(--elev-foreground);
    background: var(--elev-surface);
    border-color: transparent;
    box-shadow: 0 1px 3px rgba(10, 13, 18, 0.08);
}

.client-contract-item__copy {
    display: grid;
    gap: 0.125rem;
    min-width: 0;
}

.client-contract-item__copy strong,
.client-contract-item__copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.client-contract-item__copy strong {
    font-size: var(--elev-text-sm-size);
    font-weight: 600;
}

.client-contract-item__copy small {
    color: var(--elev-muted);
    font-size: var(--elev-text-xs-size);
}

.client-contract-detail-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.client-contract-detail-title {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.client-contract-detail-number {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    color: var(--elev-surface);
    font-size: var(--elev-text-sm-size);
    font-weight: 600;
    background: var(--elev-primary);
}

.client-contract-detail-title > div {
    min-width: 0;
}

.client-contract-detail-title h2,
.client-contract-detail-title p {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.client-contracts-list-header {
    display: flex;
    align-items: stretch;
    flex-direction: column;
    gap: 0.75rem;
}

.client-contracts-list-header p {
    margin: 0.125rem 0 0;
    color: var(--elev-muted);
    font-size: var(--elev-text-xs-size);
    line-height: 1.4;
}

.client-new-contract.mud-button-root {
    width: 100%;
    min-height: 2rem;
    border-color: var(--elev-border-soft);
    border-radius: 0.625rem;
    color: var(--elev-foreground);
    font-size: var(--elev-text-xs-size);
    font-weight: 500;
    text-transform: none;
}

.client-contracts-total {
    padding: 0.875rem 1rem;
    border-top: 1px solid var(--elev-border-soft);
    color: var(--elev-muted);
    font-size: var(--elev-text-xs-size);
}

.client-contract-detail-header p {
    margin: 0.125rem 0 0;
    color: var(--elev-muted);
    font-size: var(--elev-text-xs-size);
    text-transform: uppercase;
}

.client-contract-fields {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.client-contract-address-toggle {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
    color: var(--elev-muted);
    font-size: var(--elev-text-xs-size);
}

.client-contract-address-toggle__track {
    position: relative;
    width: 1.75rem;
    height: 1rem;
    border-radius: var(--elev-radius-pill);
    background: var(--elev-border-soft);
}

.client-contract-address-toggle__track > span {
    position: absolute;
    top: 0.125rem;
    left: 0.125rem;
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 50%;
    background: var(--elev-surface);
    transition: transform 0.16s ease;
}

.client-contract-address-toggle.is-on {
    color: var(--elev-foreground);
}

.client-contract-address-toggle.is-on .client-contract-address-toggle__track {
    background: var(--elev-success);
}

.client-contract-address-toggle.is-on .client-contract-address-toggle__track > span {
    transform: translateX(0.75rem);
}

.client-contract-summary.has-address {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 24rem);
    gap: 1.25rem;
    align-items: start;
}

.client-contract-summary__details {
    min-width: 0;
}

.client-contract-address {
    display: grid;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid var(--elev-border-soft);
    border-radius: 0.75rem;
    background: var(--elev-bg-pale);
}

.client-contract-address__map {
    height: 10rem;
    margin-bottom: 0;
}

.client-contract-address h3,
.client-contract-address p {
    margin: 0;
}

.client-contract-address h3 {
    color: var(--elev-text-bold);
    font-size: var(--elev-text-sm-size);
    font-weight: 600;
}

.client-contract-address p {
    color: var(--elev-foreground);
    font-size: var(--elev-text-sm-size);
    line-height: var(--elev-text-sm-line);
}

.client-contract-address__coordinates {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.client-equipment-section {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--elev-border-soft);
}

.client-equipment-section h3 {
    margin: 0;
    color: var(--elev-text-bold);
    font-size: 1rem;
    font-weight: 600;
}

.client-equipment-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.client-new-equipment.mud-button-root {
    min-width: 4.25rem;
    min-height: 2rem;
    border-radius: 0.5rem;
    font-size: var(--elev-text-xs-size);
    text-transform: uppercase;
}

.client-equipment-table-wrap {
    overflow-x: auto;
}

.client-equipment-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--elev-text-sm-size);
}

.client-equipment-table th,
.client-equipment-table td {
    padding: 0.625rem 0.75rem;
    border-bottom: 1px solid var(--elev-border-soft);
    color: var(--elev-foreground);
    text-align: left;
    vertical-align: middle;
}

.client-equipment-table th {
    color: var(--elev-muted);
    font-size: var(--elev-text-xs-size);
    font-weight: 600;
}

.client-equipment-table th:last-child,
.client-equipment-table td:last-child {
    width: 3rem;
    text-align: right;
}

.client-detail-empty {
    margin: 0;
    padding: 0.75rem 0;
    color: var(--elev-muted);
    font-size: var(--elev-text-sm-size);
}

.contract-form-drawer .dialog-modal-body-div > form > .row {
    margin: 0;
}

.contract-form-drawer .form-group {
    width: 100%;
    margin-top: 0.5rem !important;
    margin-bottom: 0.5rem !important;
    padding-right: 0;
    padding-left: 0;
}

.contract-form-drawer .form-label {
    margin-bottom: 0.375rem;
    color: var(--elev-foreground);
    font-family: var(--elev-font-sans);
    font-size: var(--elev-text-sm-size);
    font-weight: 500;
}

.contract-form-drawer .form-control {
    min-height: 2.5rem;
    border-color: var(--elev-border-soft);
    border-radius: 0.5rem;
    font-family: var(--elev-font-sans);
    font-size: var(--elev-text-sm-size);
}

.contract-form-drawer textarea.form-control {
    min-height: 5rem;
}

.contract-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.contract-form-field--full,
.contract-form-address {
    grid-column: 1 / -1;
}

.contract-form-address {
    padding-top: 0.25rem;
    border-top: 1px solid var(--elev-border-soft);
}

.mud-dialog-container:has(.contract-form-drawer) {
    z-index: calc(var(--mud-zindex-dialog, 1400) + 50) !important;
}

.mud-dialog-container:has(.contract-documents-drawer),
.mud-dialog-container:has(.equipment-detail-drawer) {
    z-index: calc(var(--mud-zindex-dialog, 1400) + 50) !important;
}

.mud-dialog-container:has(.equipment-form-drawer),
.mud-dialog-container:has(.preventive-plan-form-drawer),
.mud-dialog-container:has(.info-registration-drawer),
.mud-dialog-container:has(.elev-confirm-dialog),
.mud-dialog-container:has(.user-form-dialog),
.mud-dialog-container:has(.company-form-dialog),
.mud-dialog-container:has(.branch-form-dialog),
.mud-dialog-container:has(.catalog-form-drawer) {
    z-index: calc(var(--mud-zindex-dialog, 1400) + 90) !important;
}

.mud-dialog-container:has(.user-password-form-dialog) {
    z-index: calc(var(--mud-zindex-dialog, 1400) + 110) !important;
}

.mud-dialog-container:has(.company-api-keys-dialog) {
    z-index: calc(var(--mud-zindex-dialog, 1400) + 10) !important;
}

.mud-dialog-container:has(.company-settings-drawer),
.mud-dialog-container:has(.company-logo-crop-drawer),
.mud-dialog-container:has(.oncall-schedule-drawer) {
    z-index: calc(var(--mud-zindex-dialog, 1400) + 110) !important;
}

body:has(.catalog-form-drawer) .mud-dialog-container:has(.elev-confirm-dialog) {
    z-index: calc(var(--mud-zindex-dialog, 1400) + 120) !important;
}

.mud-dialog-container:has(.company-api-key-create-drawer),
.mud-dialog-container:has(.company-api-key-secret-drawer) {
    z-index: calc(var(--mud-zindex-dialog, 1400) + 120) !important;
}

body:has(.customer-detail-dialog) .mud-popover.service-detail-user-row__popover,
body:has(.equipment-detail-drawer) .mud-popover,
body:has(.preventive-plan-detail-dialog) .mud-popover {
    z-index: calc(var(--mud-zindex-dialog, 1400) + 80) !important;
}

body:has(.preventive-plan-form-drawer) .mud-popover,
body:has(.info-registration-drawer) .mud-popover,
body:has(.equipment-form-drawer) .mud-popover,
body:has(.user-form-dialog) .mud-popover,
body:has(.company-form-dialog) .mud-popover,
body:has(.branch-form-dialog) .mud-popover,
body:has(.catalog-form-drawer) .mud-popover,
body:has(.oncall-schedule-drawer) .mud-popover,
body:has(.company-settings-drawer) .mud-popover,
body:has(.company-api-key-create-drawer) .mud-popover {
    z-index: calc(var(--mud-zindex-dialog, 1400) + 130) !important;
}

/* Keep "more actions" menus under form/confirm drawers when they stay open. */
body:has(.preventive-plan-form-drawer) .service-detail-more-menu__popover,
body:has(.info-registration-drawer) .service-detail-more-menu__popover,
body:has(.elev-confirm-dialog) .service-detail-more-menu__popover,
body:has(.user-form-dialog) .service-detail-more-menu__popover,
body:has(.customer-form-dialog) .service-detail-more-menu__popover,
body:has(.company-form-dialog) .service-detail-more-menu__popover,
body:has(.branch-form-dialog) .service-detail-more-menu__popover,
body:has(.company-settings-drawer) .service-detail-more-menu__popover,
body:has(.company-api-keys-dialog) .service-detail-more-menu__popover,
body:has(.company-logo-crop-drawer) .service-detail-more-menu__popover,
body:has(.catalog-form-drawer) .service-detail-more-menu__popover,
body:has(.oncall-schedule-drawer) .service-detail-more-menu__popover {
    display: none !important;
}

.info-registration-fields {
    display: grid;
    gap: 1rem;
}

.elev-confirm-dialog.mud-dialog {
    border: 1px solid var(--elev-border-soft);
    border-radius: 1.25rem;
    max-width: 28rem;
    width: calc(100vw - 2rem);
    overflow: hidden;
    background: var(--elev-surface, #fff);
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.14);
}

.elev-confirm-dialog__title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1.5rem 1.5rem 0.75rem !important;
}

.elev-confirm-dialog__title .mud-typography,
.elev-confirm-dialog .mud-dialog-title,
.elev-confirm-dialog .mud-dialog-title .mud-typography {
    font-family: Inter, var(--elev-font-sans) !important;
    font-size: 1.125rem !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;
    color: var(--elev-text-bold, #121212) !important;
}

.elev-confirm-dialog .mud-button-close {
    flex: 0 0 auto;
    width: 2rem !important;
    height: 2rem !important;
    min-width: 2rem !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid var(--elev-border-soft) !important;
    border-radius: 50% !important;
    color: var(--elev-foreground) !important;
    background: transparent !important;
    box-shadow: none !important;
}

.elev-confirm-dialog .mud-button-close:hover,
.elev-confirm-dialog .mud-button-close:focus-visible {
    background: var(--elev-bg-pale, #f7f7f7) !important;
}

.elev-confirm-dialog .mud-button-close .mud-icon-root {
    font-size: 1rem !important;
}

.elev-confirm-dialog__content {
    padding: 0.25rem 1.5rem 0.5rem !important;
}

.elev-confirm-dialog__text {
    margin: 0;
    font-family: Inter, var(--elev-font-sans);
    font-size: 0.9375rem;
    font-weight: 400;
    line-height: 1.55;
    color: var(--elev-foreground, #1d2433);
}

.elev-confirm-dialog.mud-dialog .mud-dialog-actions.elev-confirm-dialog__actions,
.elev-confirm-dialog__actions {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    width: 100%;
    gap: 0.75rem;
    padding: 1.25rem 1.5rem 1.5rem !important;
}

.elev-confirm-dialog__actions .mud-button-root {
    flex: 0 0 auto;
    min-width: 8.5rem;
    min-height: 2.75rem;
    padding-inline: 1.25rem !important;
    border-radius: var(--elev-radius-pill) !important;
    text-transform: none !important;
    font-family: Inter, var(--elev-font-sans) !important;
    font-size: var(--elev-text-sm-size) !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    box-shadow: none !important;
}

.elev-confirm-dialog__actions .mud-button-outlined {
    border-color: var(--elev-border-soft) !important;
    color: var(--elev-foreground) !important;
    background: var(--elev-surface, #fff) !important;
}

.elev-confirm-dialog__actions .mud-button-filled {
    box-shadow: none !important;
}

.contract-detail-shell-card {
    width: 100%;
}

.equipment-detail-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
}

.equipment-detail-heading__actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.25rem;
}

.equipment-detail-heading h2 {
    margin: 0;
    color: var(--elev-text-bold);
    font-family: var(--elev-font-display);
    font-size: var(--elev-text-xl-size);
    font-weight: 600;
    line-height: var(--elev-text-xl-line);
}

.equipment-detail-heading p {
    margin: 0.25rem 0 0;
    color: var(--elev-muted);
    font-size: var(--elev-text-sm-size);
}

.equipment-detail-fields {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem 1rem;
}

.equipment-detail-fields > .service-detail-field--full {
    grid-column: 1 / -1;
}

.equipment-detail-priority {
    display: grid;
    gap: 0.375rem;
}

.equipment-detail-priority > span:first-child {
    color: var(--elev-primary);
    font-size: var(--elev-text-xs-size);
}

.equipment-detail-priority .client-contract-address-toggle {
    margin-top: 0;
}

.equipment-detail-qr {
    margin-top: 1.5rem;
    padding: 1rem;
    border: 1px solid var(--elev-border-soft);
    border-radius: 0.875rem;
}

.equipment-detail-qr__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.equipment-detail-qr h3,
.equipment-detail-qr p {
    margin: 0;
}

.equipment-detail-qr h3 {
    color: var(--elev-text-bold);
    font-size: 1rem;
    font-weight: 600;
}

.equipment-detail-qr p {
    margin-top: 0.25rem;
    color: var(--elev-muted);
    font-size: var(--elev-text-xs-size);
}

.equipment-detail-qr img {
    display: block;
    width: min(100%, 18rem);
    margin: 1rem auto 0;
}

.equipment-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.preventive-plan-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 0.5rem;
}

.equipment-form-field--span-2 {
    grid-column: span 2;
}

.equipment-form-field--full,
.preventive-plan-form-field--full {
    grid-column: 1 / -1;
    min-width: 0;
}

.preventive-plan-form-field--full > .mud-input-control {
    width: 100%;
}

.preventive-plan-checklist {
    display: grid;
    gap: 1rem;
}

.preventive-plan-checklist__category {
    padding: 1rem;
    border: 1px solid var(--elev-border-soft);
    border-radius: 0.75rem;
    background: var(--elev-surface, #fff);
}

.preventive-plan-checklist__category h4 {
    margin: 0 0 0.75rem;
    font-size: 1rem;
    font-weight: 600;
}

.preventive-plan-checklist__items {
    margin: 0;
    padding-left: 1.25rem;
    display: grid;
    gap: 0.35rem;
}

.preventive-plan-category-drawer.mud-dialog,
.preventive-plan-item-drawer.mud-dialog {
    max-width: 28rem;
}

.preventive-plan-category-drawer .service-order-create-drawer__heading,
.preventive-plan-item-drawer .service-order-create-drawer__heading {
    padding-right: 0;
}

.preventive-plan-category-drawer .service-order-create-drawer__content,
.preventive-plan-item-drawer .service-order-create-drawer__content {
    padding-top: 0.75rem;
}

.preventive-plan-category-drawer .mud-input-control,
.preventive-plan-item-drawer .mud-input-control {
    margin-top: 0.25rem;
}

.preventive-plan-detail {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    min-height: 100%;
    position: relative;
}

.preventive-plan-detail__header {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.preventive-plan-detail__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.preventive-plan-detail__title-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    min-width: 0;
}

.preventive-plan-detail__title-row h1 {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--elev-foreground);
}

.preventive-plan-detail__summary {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1rem;
    padding: 1rem 1.25rem;
    border: 1px solid var(--elev-border-soft);
    border-radius: 0.75rem;
    background: var(--elev-surface, #fff);
}

.preventive-plan-detail__workspace {
    display: grid;
    grid-template-columns: minmax(320px, 440px) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
    min-height: 28rem;
}

.preventive-plan-detail__categories,
.preventive-plan-detail__items {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem 1.15rem;
    border: 1px solid var(--elev-border-soft);
    border-radius: 0.75rem;
    background: var(--elev-surface, #fff);
    min-height: 100%;
}

.preventive-plan-detail__panel-header {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
}

.preventive-plan-detail__panel-header--items {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.preventive-plan-detail__panel-header h2,
.preventive-plan-detail__panel-header h3,
.preventive-plan-detail__selected-title h2 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 650;
    color: var(--elev-foreground);
}

.preventive-plan-detail__hint {
    margin: 0.125rem 0 0;
    color: var(--elev-muted);
    font-size: var(--elev-text-xs-size, 0.8rem);
    line-height: 1.4;
}

.preventive-plan-detail__add-item.mud-button-root {
    flex: 0 0 auto;
    min-height: 2.25rem;
    padding-inline: 1rem !important;
    border-color: var(--elev-border-soft) !important;
    border-radius: var(--elev-radius-pill) !important;
    color: var(--elev-foreground) !important;
    font-size: var(--elev-text-xs-size) !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
    white-space: nowrap;
    box-shadow: none !important;
}

.preventive-plan-detail__more-btn.mud-icon-button {
    width: 2rem !important;
    height: 2rem !important;
    min-width: 2rem !important;
    padding: 0 !important;
    border: 1px solid var(--elev-border-soft) !important;
    border-radius: 50% !important;
    color: var(--elev-foreground) !important;
    background: transparent !important;
    box-shadow: none !important;
}

.preventive-plan-detail__more-btn.mud-icon-button:hover,
.preventive-plan-detail__more-btn.mud-icon-button:focus-visible {
    background: var(--elev-bg-pale, #f7f7f7) !important;
}

.preventive-plan-detail__cta {
    align-self: flex-start;
    text-transform: none;
    font-weight: 600;
}

.preventive-plan-detail__category-list,
.preventive-plan-detail__item-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.preventive-plan-detail__category-card {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.75rem;
    border: 1px solid var(--elev-border-soft);
    border-radius: 0.75rem;
    background: var(--elev-surface);
    text-align: left;
    cursor: pointer;
    color: var(--elev-foreground);
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.preventive-plan-detail__category-card:hover,
.preventive-plan-detail__category-card.is-selected {
    border-color: var(--elev-primary);
    background: var(--elev-primary-soft);
}

.preventive-plan-detail__drag {
    color: var(--elev-muted);
    cursor: grab;
}

.preventive-plan-detail__category-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
}

.preventive-plan-detail__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: var(--elev-border-soft);
    color: var(--elev-muted);
    font-size: 0.75rem;
    font-weight: 650;
}

.preventive-plan-detail__footer {
    margin-top: auto;
    padding-top: 0.75rem;
    border-top: 1px solid var(--elev-border-soft);
    color: var(--elev-muted);
    font-size: var(--elev-text-xs-size, 0.8rem);
}

.preventive-plan-detail__selected-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.preventive-plan-detail__selected-title {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.preventive-plan-detail__item-card {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    border: 1px solid var(--elev-border-soft);
    border-radius: 0.75rem;
    background: var(--elev-surface);
}

.preventive-plan-detail__item-body {
    min-width: 0;
}

.preventive-plan-detail__item-body strong {
    display: block;
    font-weight: 600;
    color: var(--elev-foreground);
}

.preventive-plan-detail__item-actions {
    display: flex;
    align-items: center;
    gap: 0.15rem;
}

.equipment-form-drawer .mud-switch .mud-typography,
.equipment-form-drawer .mud-switch-label {
    color: var(--elev-foreground);
    font-family: var(--elev-font-sans) !important;
    font-size: var(--elev-text-sm-size) !important;
    font-weight: 500 !important;
}

.mud-dialog-container:has(.customer-form-dialog) {
    align-items: stretch;
    justify-content: flex-end;
    padding: 0 !important;
    z-index: calc(var(--mud-zindex-dialog, 1400) + 50) !important;
}

.customer-form-dialog.mud-dialog {
    position: relative !important;
    inset: auto !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    width: min(620px, calc(100vw - 28px));
    max-width: min(620px, calc(100vw - 28px));
    height: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    border-left: 1px solid var(--elev-border-soft);
    border-radius: 0 !important;
    background: var(--elev-surface);
    box-shadow: -18px 0 48px rgba(10, 13, 18, 0.14);
    overflow: hidden !important;
}

.customer-form-dialog .mud-dialog-title {
    display: flex !important;
    align-items: center !important;
    box-sizing: border-box !important;
    min-height: 5.55rem !important;
    padding: 1.25rem !important;
    padding-inline-end: 1.25rem !important;
    border-bottom: 1px solid var(--elev-border-soft);
}

.customer-form-dialog .mud-dialog-title,
.customer-form-dialog .mud-dialog-title .mud-typography,
.customer-form-dialog .service-order-create-drawer__heading h2 {
    color: var(--elev-foreground) !important;
    font-family: var(--elev-font-display) !important;
    font-size: var(--elev-text-lg-size) !important;
    line-height: var(--elev-text-lg-line) !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
}

.customer-form-dialog .mud-dialog-content {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 1rem 1.25rem !important;
    overflow-y: auto;
}

.customer-form-dialog .mud-dialog-actions {
    display: flex !important;
    flex: 0 0 auto !important;
    gap: 0.75rem;
    margin: 0 !important;
    padding: 1.25rem !important;
    border-top: 1px solid var(--elev-border-soft);
    border-radius: 0 !important;
}

.customer-form {
    display: grid;
    gap: 1.25rem;
}

.customer-form-dialog .mud-input.mud-input-outlined:not(:has(.mud-select-input)):has(input[readonly]:not(.mud-input-root-adorned-end)),
.customer-form-dialog .mud-input.mud-input-outlined:not(:has(.mud-select-input)):has(textarea[readonly]),
.contract-form-drawer .mud-input.mud-input-outlined:not(:has(.mud-select-input)):has(input[readonly]:not(.mud-input-root-adorned-end)),
.contract-form-drawer .mud-input.mud-input-outlined:not(:has(.mud-select-input)):has(textarea[readonly]) {
    border-color: var(--elev-border-soft);
    border-radius: 0.5rem;
    background: var(--elev-bg-pale);
    cursor: not-allowed;
}

.customer-form-dialog .mud-input.mud-input-outlined:has(input[disabled]),
.customer-form-dialog .mud-input.mud-input-outlined:has(textarea[disabled]),
.customer-form-dialog .mud-input.mud-input-outlined:has(.mud-select-input[aria-disabled="true"]),
.contract-form-drawer .mud-input.mud-input-outlined:has(input[disabled]),
.contract-form-drawer .mud-input.mud-input-outlined:has(textarea[disabled]),
.contract-form-drawer .mud-input.mud-input-outlined:has(.mud-select-input[aria-disabled="true"]) {
    border-color: var(--elev-border-soft);
    border-radius: 0.5rem;
    background: var(--elev-bg-pale);
    cursor: not-allowed;
}

.customer-form-dialog input.mud-input-slot[readonly]:not(.mud-input-root-adorned-end),
.customer-form-dialog textarea.mud-input-slot[readonly],
.contract-form-drawer input.mud-input-slot[readonly]:not(.mud-input-root-adorned-end),
.contract-form-drawer textarea.mud-input-slot[readonly] {
    color: var(--elev-muted) !important;
    cursor: not-allowed;
}

.customer-form-dialog .mud-input-control:not(:has(.mud-select-input)):has(input[readonly]:not(.mud-input-root-adorned-end)) .mud-input-label,
.customer-form-dialog .mud-input-control:not(:has(.mud-select-input)):has(textarea[readonly]) .mud-input-label,
.contract-form-drawer .mud-input-control:not(:has(.mud-select-input)):has(input[readonly]:not(.mud-input-root-adorned-end)) .mud-input-label,
.contract-form-drawer .mud-input-control:not(:has(.mud-select-input)):has(textarea[readonly]) .mud-input-label {
    color: var(--elev-muted) !important;
}

.customer-form-dialog .mud-input-control:has(input[disabled]) .mud-input-label,
.customer-form-dialog .mud-input-control:has(textarea[disabled]) .mud-input-label,
.customer-form-dialog .mud-input-control:has(.mud-select-input[aria-disabled="true"]) .mud-input-label,
.contract-form-drawer .mud-input-control:has(input[disabled]) .mud-input-label,
.contract-form-drawer .mud-input-control:has(textarea[disabled]) .mud-input-label,
.contract-form-drawer .mud-input-control:has(.mud-select-input[aria-disabled="true"]) .mud-input-label {
    color: var(--elev-muted) !important;
}

.customer-form-dialog .mud-select-input[aria-disabled="true"],
.contract-form-drawer .mud-select-input[aria-disabled="true"] {
    color: var(--elev-muted) !important;
    cursor: not-allowed;
}

.customer-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.customer-form-field--wide {
    grid-column: 1 / -1;
}

.customer-form-address {
    margin: 0;
    padding-top: 0.25rem;
    border-top: 1px solid var(--elev-border-soft);
}

.customer-address-fields {
    display: grid;
    gap: 1rem;
    padding-top: 1rem;
}

.customer-address-fields h3 {
    margin: 0;
    color: var(--elev-text-bold);
    font-size: 1rem;
    font-weight: 600;
}

.customer-address-zip-row {
    display: grid;
    grid-template-columns: clamp(7rem, 22%, 9rem) minmax(0, 1fr);
    grid-column: 1 / -1;
    gap: 1rem;
}

.customer-address-number-row {
    display: grid;
    grid-template-columns: clamp(7rem, 22%, 9rem) minmax(0, 1fr);
    grid-column: 1 / -1;
    gap: 1rem;
}

@media (max-width: 960px) {
    .mud-dialog-container:has(.customer-detail-dialog),
    body:has(.sidebar:hover) .mud-dialog-container:has(.customer-detail-dialog),
    body:has(.sidebar:focus-within) .mud-dialog-container:has(.customer-detail-dialog) {
        left: 0 !important;
        border-radius: 0 !important;
    }

    .mud-dialog-container:has(.customer-detail-dialog) > .mud-overlay,
    .customer-detail-dialog.mud-dialog {
        border-radius: 0 !important;
    }

    .client-detail-layout,
    .client-contracts-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .client-contracts-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1200px) {
    .client-contract-summary.has-address {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 640px) {
    .customer-detail-dialog .mud-dialog-content,
    .customer-detail-dialog .customer-detail-dialog__content {
        padding: 1rem !important;
    }

    .client-detail-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .client-detail-heading__title {
        align-items: flex-start;
        flex-direction: column;
    }

    .client-detail-edit.mud-button-root {
        width: 100%;
    }

    .customer-form-dialog.mud-dialog {
        width: 100vw;
        max-width: 100vw;
    }

    .client-basic-fields,
    .client-contract-fields,
    .client-address-grid,
    .client-contract-address__coordinates,
    .contract-form-grid,
    .equipment-form-grid,
    .preventive-plan-form-grid,
    .equipment-detail-fields,
    .client-contracts-list,
    .customer-form-grid,
    .preventive-plan-detail__summary,
    .preventive-plan-detail__workspace {
        grid-template-columns: minmax(0, 1fr);
    }

    .equipment-form-field--span-2,
    .equipment-form-field--full,
    .preventive-plan-form-field--full,
    .equipment-detail-fields > .service-detail-field--full {
        grid-column: 1;
    }

    .equipment-detail-qr__header {
        align-items: stretch;
        flex-direction: column;
    }
}
