/**
 * Fepzo brand theme — overrides Vuexy / Bootstrap tokens
 */
:root,
[data-bs-theme='light'] {
    --bs-primary: #22c55e;
    --bs-primary-rgb: 34, 197, 94;
    --bs-primary-text-emphasis: #166534;
    --bs-primary-bg-subtle: #dcfce7;
    --bs-primary-border-subtle: #86efac;

    --bs-success: #22c55e;
    --bs-success-rgb: 34, 197, 94;

    --bs-warning: #f59e0b;
    --bs-warning-rgb: 245, 158, 11;

    --bs-danger: #ef4444;
    --bs-danger-rgb: 239, 68, 68;

    --bs-info: #3b82f6;
    --bs-info-rgb: 59, 130, 246;

    --bs-body-bg: #f8fafc;
    --bs-body-color: #0f172a;
    --bs-border-color: #e2e8f0;
    --bs-heading-color: #0f172a;
    --bs-secondary-color: #475569;

    --fepzo-accent: #ff7a00;
    --fepzo-accent-rgb: 255, 122, 0;
    --fepzo-gradient-brand: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
    --fepzo-gradient-offer: linear-gradient(135deg, #ff7a00 0%, #f59e0b 100%);
    --fepzo-font: 'Plus Jakarta Sans', system-ui, sans-serif;
    --fepzo-surface: #ffffff;
    --fepzo-surface-muted: #f8fafc;
    --fepzo-surface-soft: #f1f5f9;
    --fepzo-ring: rgba(34, 197, 94, .22);
    --fepzo-shadow-sm: 0 .25rem 1.25rem rgba(15, 23, 42, .055);
    --fepzo-shadow-md: 0 .75rem 2rem rgba(15, 23, 42, .08);
    --bs-menu-width: 14.25rem;
    --bs-menu-collapsed-width: 4rem;
    --bs-menu-item-spacer: .2rem;
    --bs-menu-vertical-link-padding-y: .42rem;
    --bs-menu-vertical-link-padding-x: .62rem;
    --bs-menu-vertical-menu-link-padding-y: .42rem;
}

body {
    font-family: var(--fepzo-font);
    background:
        linear-gradient(180deg, rgba(34, 197, 94, .035), transparent 18rem),
        var(--bs-body-bg);
}

.layout-page .container-p-y {
    padding-top: 1rem !important;
    padding-bottom: 1.25rem !important;
}

.container-xxl {
    max-width: 1520px;
}

.card,
.modal-content,
.dropdown-menu {
    border-color: rgba(226, 232, 240, .92) !important;
    border-radius: .5rem !important;
    box-shadow: var(--fepzo-shadow-sm);
}

.card-header {
    border-bottom-color: rgba(226, 232, 240, .8);
}

.card-title,
.content-header-title,
.breadcrumb-wrapper h4 {
    letter-spacing: 0;
}

.form-control,
.form-select,
.select2-container--default .select2-selection {
    border-color: #dbe4ee !important;
    border-radius: .5rem !important;
    min-height: 2.42rem;
}

.form-control-sm,
.form-select-sm,
.input-group-sm > .form-control,
.input-group-sm > .form-select,
.input-group-sm > .input-group-text {
    min-height: 2.18rem;
}

textarea.form-control {
    min-height: 5.5rem;
}

.form-label {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    min-height: 1.15rem;
    margin-bottom: .35rem;
    font-size: .78rem;
    line-height: 1.2;
}

.form-text,
small.text-muted {
    display: block;
    margin-top: .28rem;
    line-height: 1.35;
}

.form-check {
    min-height: 1.45rem;
}

.form-switch {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding-left: 0;
}

.form-switch .form-check-input {
    flex: 0 0 auto;
    margin-left: 0;
}

.form-switch .form-check-label {
    margin-bottom: 0;
}

.form-control:focus,
.form-select:focus,
.select2-container--focus .select2-selection,
.select2-container--open .select2-selection {
    border-color: #22c55e !important;
    box-shadow: 0 0 0 .2rem var(--fepzo-ring) !important;
}

.btn,
.page-link,
.badge,
.alert,
.input-group-text {
    border-radius: .5rem;
}

.btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.layout-menu {
    font-size: .875rem;
}

.layout-menu .app-brand {
    min-height: 3.75rem;
    padding-inline: .85rem;
}

.layout-menu .app-brand-logo img {
    max-height: 2rem;
    width: auto;
}

.layout-menu .menu-inner {
    padding-block: .25rem !important;
}

.layout-menu .menu-header {
    margin-block: .28rem .12rem !important;
    padding: .35rem .8rem .2rem !important;
}

.layout-menu .menu-header-text {
    color: #94a3b8;
    font-size: .62rem !important;
    font-weight: 800;
    letter-spacing: .06em !important;
}

.layout-menu .menu-item {
    margin-block: .06rem !important;
}

.layout-menu .menu-link {
    min-height: 2.18rem !important;
    border-radius: .45rem !important;
    margin-inline: .45rem;
    padding-inline: .62rem !important;
}

.layout-menu .menu-link > div {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.layout-menu .menu-icon {
    width: 1.05rem !important;
    min-width: 1.05rem !important;
    margin-inline-end: .48rem !important;
    font-size: 1rem !important;
}

.layout-menu .menu-sub .menu-link {
    min-height: 2rem !important;
    padding-inline-start: 2.25rem !important;
    font-size: .82rem;
}

.layout-menu .menu-toggle::after {
    transform: scale(.82);
}

.btn:focus-visible,
.page-link:focus-visible,
.dropdown-item:focus-visible,
a:focus-visible {
    outline: 3px solid var(--fepzo-ring);
    outline-offset: 2px;
}

.app-brand .app-brand-logo img,
.auth-brand img {
    object-fit: contain;
}

.bg-label-primary {
    background-color: #dcfce7 !important;
    color: #166534 !important;
}

.menu-vertical .menu-item.active > .menu-link {
    background: linear-gradient(90deg, rgba(34, 197, 94, 0.12) 0%, rgba(34, 197, 94, 0.04) 100%);
    color: #16a34a;
}

.menu-vertical .menu-item.active > .menu-link .menu-icon {
    color: #22c55e;
}

.btn-primary {
    background: var(--fepzo-gradient-brand) !important;
    border-color: #16a34a !important;
    box-shadow: 0 0.125rem 0.375rem rgba(34, 197, 94, 0.35);
}

.btn-primary:hover,
.btn-primary:focus {
    background: linear-gradient(135deg, #4ade80 0%, #22c55e 100%) !important;
    border-color: #22c55e !important;
}

.btn-fepzo-accent {
    background: var(--fepzo-gradient-offer) !important;
    border: none !important;
    color: #fff !important;
}

.text-fepzo-accent {
    color: var(--fepzo-accent) !important;
}

.bg-fepzo-soft {
    background-color: #dcfce7 !important;
}

.card-border-shadow-primary {
    border-bottom: 3px solid #22c55e;
}

.stat-card.card-border-shadow-primary .avatar-initial {
    background-color: #dcfce7 !important;
    color: #16a34a !important;
}

a {
    color: #16a34a;
}

a:hover {
    color: #15803d;
}

.page-item.active .page-link,
.pagination li.active > a {
    background-color: #22c55e !important;
    border-color: #22c55e !important;
}

.form-check-input:checked {
    background-color: #22c55e;
    border-color: #22c55e;
}

.switch-input:checked ~ .switch-toggle-slider {
    background: #22c55e !important;
}

.progress-bar {
    background-color: #22c55e;
}

.navbar-brand,
.app-brand-text {
    font-weight: 700;
    letter-spacing: 0;
}

.table {
    --bs-table-striped-bg: #f8fafc;
    --bs-table-hover-bg: #f1f5f9;
    margin-bottom: 0;
}

.table > :not(caption) > * > * {
    padding-block: .72rem;
    vertical-align: middle;
}

.table thead th,
.dataTable thead th {
    color: #475569;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .035em;
    text-transform: uppercase;
    white-space: nowrap;
    background: #f8fafc;
}

.table tbody td {
    color: #0f172a;
}

.table tbody tr:hover > * {
    background-color: #f8fafc !important;
}

.table .badge {
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.dataTables_empty,
.dt-empty {
    padding: 2rem 1rem !important;
    color: #64748b !important;
    font-weight: 600;
}

.dataTables_processing {
    border: 1px solid #e2e8f0;
    border-radius: .5rem;
    box-shadow: var(--fepzo-shadow-md);
}

.pagination {
    gap: .25rem;
}

.pagination .page-link {
    min-width: 2rem;
    text-align: center;
}

.dropdown-menu {
    padding: .45rem;
}

.dropdown-item {
    border-radius: .45rem;
}

.card-body {
    padding: 1rem;
}

.card-footer,
.card-header {
    padding: .85rem 1rem;
}

.card-header h1,
.card-header h2,
.card-header h3,
.card-header h4,
.card-header h5,
.card-header h6 {
    margin-bottom: 0;
    line-height: 1.2;
}

.card-body > .row,
form .row {
    --bs-gutter-x: .9rem;
    --bs-gutter-y: .9rem;
}

.form-page-row,
form > .row,
.card-body > .row {
    align-items: start;
}

.form-page-row > [class*='col-'],
form .row > [class*='col-'],
.card-body > .row > [class*='col-'] {
    min-width: 0;
}

form .row > [class*='col-']:not(.d-flex),
.card-body > .row > [class*='col-']:not(.d-flex) {
    display: flex;
    flex-direction: column;
}

form .row > [class*='col-'] > .form-control,
form .row > [class*='col-'] > .form-select,
form .row > [class*='col-'] > .select2,
form .row > [class*='col-'] > .select2-container {
    width: 100% !important;
}

form .row > [class*='col-'] > .form-control,
form .row > [class*='col-'] > .form-select,
form .row > [class*='col-'] > .input-group,
form .row > [class*='col-'] > .select2-container {
    margin-top: auto;
}

form .row > .col-12 > .form-label + .form-control,
form .row > .col-12 > .form-label + textarea.form-control {
    margin-top: 0;
}

.card[class*='col-'] {
    padding-left: 0;
    padding-right: 0;
}

.card[class*='col-'] > .card-body {
    width: 100%;
}

.select2-container .select2-selection--single {
    display: flex;
    align-items: center;
}

.select2-container .select2-selection--multiple {
    min-height: 2.42rem !important;
    padding-block: .15rem;
}

.accordion-item {
    border-radius: .5rem !important;
    overflow: hidden;
}

.accordion-button {
    min-height: 2.75rem;
    padding: .75rem 1rem;
    font-weight: 800;
}

.accordion-body {
    padding: 1rem;
}

.nav-pills .nav-link {
    border-radius: .5rem;
}

@media (max-width: 767.98px) {
    .layout-page .container-xxl.container-p-y {
        padding-left: .85rem !important;
        padding-right: .85rem !important;
    }

    .card {
        border-radius: .5rem !important;
    }

    .table > :not(caption) > * > * {
        padding: .55rem .6rem;
    }

    .card-body,
    .card-footer,
    .card-header,
    .accordion-body {
        padding: .85rem;
    }

    .layout-menu .menu-link {
        margin-inline: .35rem;
    }
}
