:root {
    --erp-page-bg: #f6f8fb;
    --erp-surface-bg: #ffffff;
    --erp-surface-muted: #fbfcfe;
    --erp-band-bg: #f3f6fa;
    --erp-header-bg: #eef2f7;
    --erp-border-subtle: rgba(15, 23, 42, 0.08);
    --erp-border: #d7dde5;
    --erp-border-strong: #cbd5e1;
    --erp-text: #0f172a;
    --erp-text-muted: #475569;
    --erp-text-soft: #64748b;
    --erp-text-disabled: #94a3b8;
    --erp-primary: #417690;
    --erp-primary-strong: #2563eb;
    --erp-primary-hover-bg: #eef5f8;
    --erp-primary-hover-border: #9fb8c6;
    --erp-focus-ring: rgba(65, 118, 144, 0.16);
    --erp-shadow-sm: 0 10px 28px rgba(15, 23, 42, 0.07);
    --erp-shadow-md: 0 12px 32px rgba(15, 23, 42, 0.06);
    --erp-shadow-menu: 0 12px 24px rgba(15, 23, 42, 0.16);
    --erp-radius-none: 0;
    --erp-radius-sm: 2px;
    --erp-radius-md: 4px;
    --erp-control-height: 2rem;
    --erp-control-height-sm: 1.8rem;
    --erp-control-font-size: 0.875rem;
    --erp-control-padding-x: 0.65rem;
    --erp-control-padding-y: 0.25rem;
    --erp-compact-font-size: 0.8125rem;
    --erp-form-band-bg: #e7f1ff;
    --erp-form-border: #cbd5e1;
    --erp-form-heading: #424244;
    --erp-form-text: #020617;
    --erp-form-focus: #2563eb;
    --erp-form-focus-ring: rgba(37, 99, 235, 0.16);
    --erp-form-control-radius: 4px;
    --erp-form-control-min-height: 1.5rem;
    --erp-table-header-bg: #eef2f7;
    --erp-table-row-alt-bg: #fbfdff;
    --erp-table-row-border: #e5eaf0;
    --erp-table-cell-border: #edf1f5;
    --erp-state-success: #166534;
    --erp-state-success-border: #86efac;
    --erp-state-danger: #991b1b;
    --erp-state-danger-border: #fecaca;
    --erp-space-1: 0.25rem;
    --erp-space-2: 0.5rem;
    --erp-space-3: 0.75rem;
    --erp-space-4: 1rem;
    --erp-space-5: 1.5rem;
    --erp-space-6: 2rem;
}

body {
    background: var(--erp-page-bg);
    color: var(--erp-text);
}

a {
    text-decoration-thickness: 0.06em;
    text-underline-offset: 0.12em;
}

.btn:not(.btn-close),
a.btn,
button:not([class]),
input[type="button"]:not([class]),
input[type="reset"]:not([class]),
input[type="submit"]:not([class]) {
    align-items: center;
    border-radius: var(--erp-radius-sm);
    font-size: var(--erp-control-font-size);
    min-height: var(--erp-control-height);
}

button:not([class]),
input[type="button"]:not([class]),
input[type="reset"]:not([class]),
input[type="submit"]:not([class]) {
    background: var(--erp-surface-bg);
    border: 1px solid var(--erp-border-strong);
    color: #1e293b;
    display: inline-flex;
    font-weight: 600;
    gap: 0.35rem;
    min-height: var(--erp-control-height);
    line-height: 1;
    padding: var(--erp-control-padding-y) var(--erp-control-padding-x);
}

button:not([class]):hover,
button:not([class]):focus,
input[type="button"]:not([class]):hover,
input[type="button"]:not([class]):focus,
input[type="reset"]:not([class]):hover,
input[type="reset"]:not([class]):focus,
input[type="submit"]:not([class]):hover,
input[type="submit"]:not([class]):focus {
    background: var(--erp-primary-hover-bg);
    border-color: var(--erp-primary-hover-border);
    color: var(--erp-text);
}

.btn-sm,
.btn-group-sm > .btn {
    border-radius: var(--erp-radius-sm);
    font-size: var(--erp-compact-font-size);
    min-height: var(--erp-control-height-sm);
}

.btn:focus-visible,
button:not([class]):focus-visible,
input[type="button"]:not([class]):focus-visible,
input[type="reset"]:not([class]):focus-visible,
input[type="submit"]:not([class]):focus-visible {
    box-shadow: 0 0 0 0.12rem var(--erp-focus-ring);
    outline: 0;
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="date"],
input[type="datetime-local"],
input[type="month"],
input[type="time"],
input[type="url"],
input[type="tel"],
select,
textarea,
.form-control,
.form-select {
    border-color: var(--erp-border-strong);
    border-radius: var(--erp-radius-sm);
    color: var(--erp-text);
    font-size: var(--erp-control-font-size);
    min-height: var(--erp-control-height);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="date"]:focus,
input[type="datetime-local"]:focus,
input[type="month"]:focus,
input[type="time"]:focus,
input[type="url"]:focus,
input[type="tel"]:focus,
select:focus,
textarea:focus,
.form-control:focus,
.form-select:focus {
    border-color: var(--erp-form-focus);
    box-shadow: 0 0 0 0.12rem var(--erp-form-focus-ring);
}

.form-control-sm,
.form-select-sm {
    border-radius: var(--erp-radius-sm);
    font-size: var(--erp-compact-font-size);
    min-height: var(--erp-control-height-sm);
}

.form-control::placeholder {
    color: var(--erp-text-soft);
    opacity: 1;
}

.form-control:disabled,
.form-control[readonly],
.form-select:disabled {
    background-color: #f1f5f9;
    color: var(--erp-text-muted);
}

input[type="file"],
input[type="range"],
input[type="checkbox"],
input[type="radio"],
input[type="hidden"],
.form-check-input,
.form-range,
.btn-close,
.navbar-toggler,
.tabulator input,
.flatpickr-calendar input {
    font-size: revert;
}

.form-label {
    color: var(--erp-text);
    font-size: var(--erp-control-font-size);
}

.form-text,
.invalid-feedback {
    font-size: var(--erp-compact-font-size);
}

.alert {
    border-radius: var(--erp-radius-none);
    font-size: var(--erp-control-font-size);
}

.badge {
    font-weight: 600;
}

.badge.text-bg-light {
    border-color: var(--erp-border-strong) !important;
    color: var(--erp-text-muted) !important;
}

.breadcrumb {
    font-size: var(--erp-space-4);
}

.breadcrumb-item a {
    text-decoration: none;
}

.breadcrumb-item a:hover,
.breadcrumb-item a:focus {
    text-decoration: underline;
}

.erp-breadcrumb-bar {
    background-color: var(--erp-surface-bg);
    border-bottom: 1px solid rgba(15, 23, 42, 0.3);
    padding: 0 0.75rem 0.25rem;
}

.erp-page-header {
    align-items: flex-end;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.erp-page-eyebrow {
    color: var(--erp-text-soft);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0;
    margin-bottom: 0.25rem;
    text-transform: uppercase;
}

.erp-page-title {
    font-size: 1.125rem;
    margin-bottom: 0;
}

.card {
    border-color: var(--erp-border-subtle);
    border-radius: var(--erp-radius-none);
}

.card-header,
.card-footer {
    background: var(--erp-surface-muted);
    border-color: var(--erp-border);
}

.erp-panel,
.erp-card,
.erp-kpi-card,
.erp-table-panel,
.notice-card,
.profile-card,
.login-card {
    background: var(--erp-surface-bg);
    border: 1px solid var(--erp-border);
    border-radius: var(--erp-radius-none);
    box-shadow: var(--erp-shadow-sm);
}

.notice-card,
.profile-card,
.login-card {
    border-color: var(--erp-border-subtle);
    box-shadow: var(--erp-shadow-md);
}

.erp-panel-header,
.erp-toolbar,
.erp-filter-bar {
    align-items: center;
    background: var(--erp-surface-muted);
    border-bottom: 1px solid var(--erp-border);
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: space-between;
    min-height: 3rem;
    padding: 0.55rem 0.75rem;
}

.erp-search {
    flex: 1 1 20rem;
    max-width: 28rem;
    position: relative;
}

.erp-search .form-control {
    box-shadow: none;
    height: var(--erp-control-height);
    padding-left: 2rem;
}

.erp-search-icon {
    color: var(--erp-text-soft);
    font-size: 0.8rem;
    left: 0.7rem;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
}

.erp-actions-bar {
    align-items: center;
    display: flex;
    flex: 0 1 auto;
    flex-wrap: wrap;
    gap: 0.45rem;
    justify-content: flex-end;
}

.erp-command,
.erp-icon-button {
    align-items: center;
    background: var(--erp-surface-bg);
    border: 1px solid var(--erp-border-strong);
    color: #1e293b;
    display: inline-flex;
    font-size: var(--erp-compact-font-size);
    font-weight: 600;
    gap: 0.35rem;
    min-height: var(--erp-control-height);
    line-height: 1;
    padding: 0 var(--erp-control-padding-x);
}

.erp-command:hover,
.erp-command:focus,
.erp-icon-button:hover,
.erp-icon-button:focus {
    background: var(--erp-primary-hover-bg);
    border-color: var(--erp-primary-hover-border);
    color: var(--erp-text);
}

.erp-command:focus-visible,
.erp-icon-button:focus-visible {
    outline: 2px solid var(--erp-primary);
    outline-offset: -2px;
}

.erp-icon-button {
    height: var(--erp-control-height);
    justify-content: center;
    padding: 0;
    width: var(--erp-control-height);
}

.erp-row-action {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: var(--erp-radius-sm);
    color: #334155;
    display: inline-flex;
    height: 1.65rem;
    justify-content: center;
    line-height: 1;
    padding: 0;
    width: 1.65rem;
}

.erp-row-action:hover,
.erp-row-action:focus {
    background-color: #dce8ef;
    color: var(--erp-text);
}

.erp-row-action:focus-visible {
    outline: 2px solid var(--erp-primary);
    outline-offset: -2px;
}

.erp-action-menu {
    background: var(--erp-surface-bg);
    border: 1px solid var(--erp-border-strong);
    box-shadow: var(--erp-shadow-menu);
    min-width: 10rem;
    padding: 0.25rem 0;
    position: absolute;
    z-index: 1080;
}

.erp-action-menu-item {
    background: transparent;
    border: 0;
    color: var(--erp-text);
    display: block;
    font-size: var(--erp-control-font-size);
    padding: 0.45rem 0.6rem;
    text-align: left;
    width: 100%;
}

.erp-action-menu-item:hover,
.erp-action-menu-item:focus {
    background: #e7f1ff;
    color: #020617;
    outline: 0;
}

.erp-action-menu-item:disabled {
    cursor: not-allowed;
    opacity: 0.65;
}

.erp-count {
    color: var(--erp-text-muted);
    font-size: var(--erp-compact-font-size);
}

.erp-empty-state {
    padding: 3rem 1.5rem;
    text-align: center;
}

.erp-empty-state-title {
    font-size: 1.125rem;
    margin-bottom: 0.5rem;
}

.erp-empty-state-text {
    color: var(--erp-text-soft);
    margin-bottom: 0;
}

.table,
.erp-table {
    color: var(--erp-text);
    font-size: var(--erp-control-font-size);
    margin-bottom: 0;
}

.table > :not(caption) > * > *,
.erp-table > :not(caption) > * > * {
    border-bottom-color: var(--erp-table-row-border);
    padding: 0.45rem 0.6rem;
}

.table thead th,
.erp-table thead th {
    background: var(--erp-table-header-bg);
    border-bottom-color: var(--erp-border-strong);
    color: #334155;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
}

.table-striped > tbody > tr:nth-of-type(odd) > *,
.erp-table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: var(--erp-table-row-alt-bg);
}

.erp-table-actions {
    align-items: center;
    display: inline-flex;
    gap: var(--erp-space-2);
    justify-content: flex-end;
}

.erp-form-card {
    overflow: hidden;
}

.erp-form {
    margin: 0;
}

.erp-form-modal .modal-dialog,
.simplified-product-add-modal .modal-dialog {
    max-width: 920px;
}

.erp-form-modal .modal-content,
.simplified-product-add-modal .modal-content {
    border: 1px solid var(--erp-form-border);
    border-radius: var(--erp-radius-sm);
    overflow: hidden;
}

.erp-form-modal .modal-dialog-scrollable .modal-content,
.simplified-product-add-modal .modal-dialog-scrollable .modal-content {
    max-height: calc(100dvh - 2rem);
}

.erp-form-modal .modal-content > form,
.simplified-product-add-modal .modal-content > form {
    display: flex;
    flex-direction: column;
    max-height: inherit;
    min-height: 0;
}

.erp-form-modal .modal-body,
.simplified-product-add-modal .modal-body {
    overflow-y: auto;
}

.erp-form-title,
.simplified-product-form-title {
    background: var(--erp-form-band-bg);
    padding: 1rem 1.5rem;
}

.erp-form-heading,
.registro-modal-title {
    color: var(--erp-form-heading) !important;
    font-size: 1rem;
    margin-bottom: 0;
}

.erp-form-section,
.simplified-product-form-section {
    border-bottom: 1px solid var(--erp-form-border);
    padding: 1rem 1.5rem;
}

.erp-form-section-last,
.simplified-product-form-section:last-of-type {
    border-bottom: 0;
}

.erp-form .form-label,
.erp-form-modal .form-label,
.simplified-product-add-modal .form-label {
    color: var(--erp-form-text);
    margin-bottom: 0.55rem;
}

.erp-form .form-control,
.erp-form .form-select,
.erp-form-modal .form-control,
.erp-form-modal .form-select,
.simplified-product-add-modal .form-control,
.simplified-product-add-modal .form-select {
    border-color: var(--erp-form-border);
    border-radius: var(--erp-radius-sm);
    font-size: var(--erp-compact-font-size);
    min-height: var(--erp-form-control-min-height);
}

.erp-form .form-control:hover:not(:disabled):not([readonly]),
.erp-form .form-select:hover:not(:disabled),
.erp-form-modal .form-control:hover:not(:disabled):not([readonly]),
.erp-form-modal .form-select:hover:not(:disabled),
.simplified-product-add-modal .form-control:hover:not(:disabled):not([readonly]),
.simplified-product-add-modal .form-select:hover:not(:disabled) {
    border-color: var(--erp-primary-hover-border);
}

.erp-form .form-control:focus,
.erp-form .form-select:focus,
.erp-form-modal .form-control:focus,
.erp-form-modal .form-select:focus,
.simplified-product-add-modal .form-control:focus,
.simplified-product-add-modal .form-select:focus {
    border-color: var(--erp-form-focus);
    box-shadow: 0 0 0 0.12rem var(--erp-form-focus-ring);
}

.erp-form .form-control::placeholder,
.erp-form-modal .form-control::placeholder,
.simplified-product-add-modal .form-control::placeholder {
    color: var(--erp-text-soft);
}

.readonly-field {
    background-color: var(--bs-light);
    caret-color: transparent;
    color: var(--bs-secondary);
}

.erp-form-actions,
.simplified-product-form-actions {
    align-items: center;
    background: var(--erp-form-band-bg);
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
    padding: 0.63125rem 1.5rem;
}

.erp-form-alert,
.simplified-product-form-alert {
    margin: 0 2rem 1rem;
}

.erp-form-details,
.simplified-product-delete-details {
    display: grid;
    gap: 0.45rem 0.8rem;
    grid-template-columns: max-content minmax(0, 1fr);
    margin: 1rem 0 0;
}

.erp-form-details dt,
.simplified-product-delete-details dt,
.erp-readonly-list dt,
.simplified-product-readonly-list dt {
    color: var(--erp-text-muted);
    font-size: 0.8rem;
    font-weight: 700;
}

.erp-form-details dd,
.simplified-product-delete-details dd,
.erp-readonly-list dd,
.simplified-product-readonly-list dd {
    color: var(--erp-form-text);
    font-size: var(--erp-control-font-size);
    margin: 0;
    white-space: pre-line;
}

.erp-readonly-list dd,
.simplified-product-readonly-list dd {
    line-height: 1.25;
}

.erp-readonly-list dt,
.simplified-product-readonly-list dt {
    line-height: 1.25;
}

.erp-readonly-list,
.simplified-product-readonly-list {
    align-items: baseline;
    display: grid;
    gap: 0.5rem 1.5rem;
    grid-template-columns: max-content minmax(0, 1fr);
    margin: 0;
}

.erp-readonly-action,
.simplified-product-readonly-action {
    align-items: baseline;
    display: inline-flex;
    gap: 0.35rem;
    line-height: 1.25;
}

.erp-readonly-list-compact,
.simplified-product-edit-quantity-list {
    gap: 0.5rem 1.5rem;
    grid-template-columns: max-content max-content max-content;
}

.erp-readonly-list-compact dd,
.simplified-product-edit-quantity-list dd {
    align-self: baseline;
}

.erp-readonly-list-compact .erp-readonly-action,
.simplified-product-edit-quantity-list .simplified-product-readonly-action {
    justify-self: start;
}

.simplified-product-item-current-list {
    display: grid;
    grid-template-columns: max-content max-content minmax(0, 1fr);
    column-gap: 1rem;
    row-gap: 0.5rem;
    align-items: baseline;
}


.erp-readonly-icon-button,
.simplified-product-readonly-icon-button {
    align-items: center;
    appearance: none;
    background: transparent;
    border: 0;
    color: var(--erp-form-focus);
    cursor: pointer;
    display: inline-flex;
    height: 1.125rem;
    justify-content: center;
    line-height: 1;
    padding: 0;
    width: 1.125rem;
}

.erp-readonly-icon-button:hover,
.erp-readonly-icon-button:focus,
.simplified-product-readonly-icon-button:hover,
.simplified-product-readonly-icon-button:focus {
    color: #1d4ed8;
}

.erp-readonly-icon-button:focus-visible,
.simplified-product-readonly-icon-button:focus-visible {
    outline: 2px solid #86b7fe;
    outline-offset: 2px;
}

.erp-inline-field,
.simplified-product-inline-field {
    align-items: center;
    display: flex;
    gap: 0.5rem;
}

.erp-inline-field .form-label,
.simplified-product-inline-field .form-label {
    flex: 0 0 auto;
    margin-bottom: 0;
    white-space: nowrap;
}

.erp-inline-field .form-control,
.erp-inline-field .form-select,
.simplified-product-inline-field .form-control,
.simplified-product-inline-field .form-select {
    flex: 1 1 auto;
    min-width: 0;
}

.erp-form-preview,
.simplified-product-movement-preview {
    border-radius: var(--erp-form-control-radius);
    color: var(--erp-text-muted);
    font-size: var(--erp-control-font-size);
}

.simplified-product-movement-stock-summary {
    gap: 0.5rem 2rem;
    grid-template-columns: max-content minmax(1rem, max-content) max-content minmax(1rem, max-content);
    margin-top: 0.75rem;
}

.erp-form-preview.is-entry,
.simplified-product-movement-preview.is-entry {
    border-color: var(--erp-state-success-border);
    color: var(--erp-state-success);
}

.erp-form-preview.is-exit,
.simplified-product-movement-preview.is-exit {
    border-color: var(--erp-state-danger-border);
    color: var(--erp-state-danger);
}

.erp-extra-form-label,
.extra-form-label {
    color: var(--erp-text-muted) !important;
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 2rem;
}

.navbar {
    border-bottom: 1px solid rgba(15, 23, 42, 0.3);
}

.navbar .btn {
    font-size: var(--erp-space-4);
    min-height: var(--erp-control-height);
}

.navbar-brand {
    font-size: 1rem;
}

.nav-link {
    border-radius: var(--erp-radius-md);
}

.btn-navbar-custom {
    border-radius: var(--erp-radius-sm);
}

.modal-content {
    border-color: var(--erp-border-strong);
    border-radius: var(--erp-radius-sm);
}

.modal-header,
.modal-footer {
    border-color: var(--erp-border);
}

.modal-title {
    font-size: 1rem;
}

.dropdown-menu {
    border-color: var(--erp-border-strong);
    border-radius: var(--erp-radius-sm);
    box-shadow: var(--erp-shadow-menu);
}

.pagination {
    --bs-pagination-border-color: var(--erp-border-strong);
    --bs-pagination-border-radius: var(--erp-radius-sm);
    --bs-pagination-color: #1e293b;
    --bs-pagination-focus-box-shadow: 0 0 0 0.12rem var(--erp-focus-ring);
    --bs-pagination-hover-bg: var(--erp-primary-hover-bg);
    --bs-pagination-hover-border-color: var(--erp-primary-hover-border);
    --bs-pagination-active-bg: var(--erp-primary);
    --bs-pagination-active-border-color: var(--erp-primary);
}

.erp-stack {
    display: flex;
    flex-direction: column;
    gap: var(--erp-space-4);
}

.erp-inline {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: var(--erp-space-2);
}

.erp-muted {
    color: var(--erp-text-muted);
}

.erp-soft {
    color: var(--erp-text-soft);
}

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

    .erp-toolbar {
        align-items: stretch;
    }

    .erp-search,
    .erp-actions-bar {
        flex-basis: 100%;
        max-width: none;
    }

    .erp-actions-bar {
        justify-content: flex-start;
    }

    .erp-form-title,
    .erp-form-section,
    .erp-form-actions,
    .simplified-product-form-title,
    .simplified-product-form-section,
    .simplified-product-form-actions {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }

    .erp-form-alert,
    .simplified-product-form-alert {
        margin-left: 1.25rem;
        margin-right: 1.25rem;
    }

    .simplified-product-movement-stock-summary {
        grid-template-columns: max-content minmax(0, 1fr);
    }
}
