/* Estimart 3.5.0 — shared application visual system.
   This layer normalizes legacy MDBootstrap pages without changing page copy,
   tenant colors, routes, or business workflows. */

:root {
    --estimart-ui-primary: var(--color2, #58736d);
    --estimart-ui-ink: var(--color3, #1d2b28);
    --estimart-ui-accent: var(--color4, #00b8c4);
    --estimart-ui-canvas: var(--color5, #f4f7f6);
    --estimart-ui-surface: #ffffff;
    --estimart-ui-muted: #71817d;
    --estimart-ui-border: #dce6e3;
    --estimart-ui-radius-sm: 10px;
    --estimart-ui-radius: 15px;
    --estimart-ui-radius-lg: 20px;
    --estimart-ui-shadow-sm: 0 7px 24px rgba(29, 43, 40, .055);
    --estimart-ui-shadow: 0 16px 42px rgba(29, 43, 40, .08);
}

body.estimart-app {
    min-height: 100vh;
    color: var(--estimart-ui-ink);
    background: var(--estimart-ui-canvas);
    font-family: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 13px;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) {
    background:
        radial-gradient(circle at 100% 0, color-mix(in srgb, var(--estimart-ui-accent) 8%, transparent), transparent 27rem),
        var(--estimart-ui-canvas);
}

body.estimart-app h1,
body.estimart-app h2,
body.estimart-app h3,
body.estimart-app h4,
body.estimart-app h5,
body.estimart-app h6 {
    color: var(--estimart-ui-ink);
    font-family: inherit;
    font-weight: 650;
    letter-spacing: -.018em;
}

body.estimart-app p,
body.estimart-app label,
body.estimart-app input,
body.estimart-app select,
body.estimart-app textarea,
body.estimart-app button,
body.estimart-app table {
    font-family: inherit;
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) p {
    color: var(--estimart-ui-muted);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.65;
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) #content {
    min-width: 0;
    padding: 0 24px 32px;
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .navbar {
    min-height: 66px;
    margin: 0 0 22px;
    padding: 10px 16px;
    border: 1px solid rgba(220, 230, 227, .88);
    border-radius: var(--estimart-ui-radius);
    background: rgba(255,255,255,.96) !important;
    box-shadow: var(--estimart-ui-shadow-sm);
}

body.estimart-app #sidebar {
    border-right: 1px solid rgba(220,230,227,.8);
    box-shadow: 8px 0 30px rgba(29,43,40,.035);
}

body.estimart-app #sidebar .sidebar-header {
    padding: 22px 20px 16px;
}

body.estimart-app #sidebar ul li a,
body.estimart-app #sidebar .list-group-item {
    margin: 2px 10px;
    padding: 10px 12px;
    border: 0;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
}

body.estimart-app #sidebar ul li a i,
body.estimart-app #sidebar .list-group-item i {
    width: 22px;
    margin-right: 7px;
    text-align: center;
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .card {
    border: 1px solid rgba(220, 230, 227, .9) !important;
    border-radius: var(--estimart-ui-radius) !important;
    background: var(--estimart-ui-surface);
    box-shadow: var(--estimart-ui-shadow-sm) !important;
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .card-header {
    padding: 17px 20px;
    border-bottom: 1px solid var(--estimart-ui-border);
    border-radius: var(--estimart-ui-radius) var(--estimart-ui-radius) 0 0 !important;
    background: transparent;
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .card-body {
    padding: 20px;
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .modal-content {
    overflow: hidden;
    border: 1px solid var(--estimart-ui-border);
    border-radius: var(--estimart-ui-radius-lg);
    box-shadow: 0 24px 70px rgba(29,43,40,.18);
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .modal-header,
body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .modal-footer {
    padding: 16px 20px;
    border-color: var(--estimart-ui-border);
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .modal-body {
    padding: 20px;
}

body.estimart-app .form-label,
body.estimart-app label:not(.btn):not(.form-check-label) {
    margin-bottom: 6px;
    color: #425651;
    font-size: 11px;
    font-weight: 650;
    letter-spacing: .005em;
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .form-control,
body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .form-select,
body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) select,
body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .select-input {
    min-height: 43px;
    border: 1px solid #d5e0dd !important;
    border-radius: var(--estimart-ui-radius-sm) !important;
    background-color: #fff;
    color: var(--estimart-ui-ink);
    font-size: 12px;
    box-shadow: none !important;
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) textarea.form-control {
    min-height: 108px;
    padding-top: 11px;
    line-height: 1.55;
    resize: vertical;
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .form-control:focus,
body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .form-select:focus,
body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) select:focus {
    border-color: color-mix(in srgb, var(--estimart-ui-primary) 70%, white) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--estimart-ui-primary) 13%, transparent) !important;
}

body.estimart-app .form-text,
body.estimart-app small.text-muted {
    color: var(--estimart-ui-muted) !important;
    font-size: 10.5px;
    line-height: 1.45;
}

body.estimart-app .input-group-text {
    min-height: 43px;
    border-color: #d5e0dd;
    border-radius: var(--estimart-ui-radius-sm);
    color: #425651;
    background: #f7faf9;
    font-size: 11px;
    font-weight: 600;
}

body.estimart-app .btn {
    min-height: 39px;
    padding: 9px 15px;
    border-radius: 10px;
    font-family: inherit;
    font-size: 11px;
    font-weight: 650;
    letter-spacing: .01em;
    line-height: 1.2;
    text-transform: none;
    box-shadow: none;
}

body.estimart-app .btn-sm {
    min-height: 32px;
    padding: 6px 11px;
    border-radius: 8px;
    font-size: 10.5px;
}

body.estimart-app .btn-lg {
    min-height: 48px;
    padding: 12px 20px;
    font-size: 12px;
}

body.estimart-app .btn-primary {
    border-color: var(--estimart-ui-primary) !important;
    background: var(--estimart-ui-primary) !important;
    color: #fff !important;
}

body.estimart-app .btn-primary:hover {
    filter: brightness(.93);
    transform: translateY(-1px);
}

body.estimart-app .btn-outline-primary {
    border-color: color-mix(in srgb, var(--estimart-ui-primary) 55%, white) !important;
    color: var(--estimart-ui-primary) !important;
    background: #fff !important;
}

body.estimart-app .btn-light,
body.estimart-app .btn-secondary {
    border-color: var(--estimart-ui-border) !important;
    color: #425651 !important;
    background: #f7faf9 !important;
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .table-responsive {
    border: 1px solid var(--estimart-ui-border);
    border-radius: 13px;
    background: #fff;
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .table {
    margin-bottom: 0;
    color: var(--estimart-ui-ink);
    font-size: 11.5px;
    vertical-align: middle;
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .table > :not(caption) > * > * {
    padding: 11px 12px;
    border-color: #e7eeec;
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .table thead th {
    color: #52645f;
    background: #f7faf9;
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .055em;
    text-transform: uppercase;
    white-space: nowrap;
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .table tbody tr {
    transition: background-color .15s ease;
}

body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .table tbody tr:hover {
    background: #fafcfb;
}

body.estimart-app .badge {
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .025em;
}

body.estimart-app .alert {
    border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
    border-radius: 12px;
    font-size: 11.5px;
    line-height: 1.55;
    box-shadow: none;
}

body.estimart-app .dropdown-menu {
    padding: 7px;
    border: 1px solid var(--estimart-ui-border);
    border-radius: 12px;
    box-shadow: var(--estimart-ui-shadow);
}

body.estimart-app .dropdown-item {
    padding: 9px 10px;
    border-radius: 8px;
    font-size: 11px;
}

body.estimart-app .pagination .page-link {
    min-width: 34px;
    min-height: 34px;
    display: grid;
    place-items: center;
    margin: 0 2px;
    border: 1px solid var(--estimart-ui-border);
    border-radius: 8px !important;
    color: var(--estimart-ui-primary);
    font-size: 10.5px;
}

body.estimart-app .pagination .active .page-link {
    border-color: var(--estimart-ui-primary);
    background: var(--estimart-ui-primary);
    color: #fff;
}

body.estimart-app .estimart-user-chip {
    display: inline-flex;
    align-items: center;
    min-width: 0;
}

body.estimart-app .estimart-user-avatar {
    flex: 0 0 28px;
    object-fit: cover;
}

body.estimart-app .estimart-user-name {
    max-width: 180px;
    overflow: hidden;
    color: var(--estimart-ui-ink);
    font-size: 11px;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 991.98px) {
    body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) #content {
        padding: 0 14px 24px;
    }
    body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .card-body,
    body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .modal-body {
        padding: 16px;
    }
}

@media (max-width: 575.98px) {
    body.estimart-app .btn:not(.btn-sm) { width: 100%; }
    body.estimart-app .modal-dialog { margin: 10px; }
    body.estimart-app:not(.superadmin-body):not(.route-login):not(.route-project-portal) .table > :not(caption) > * > * { padding: 9px 10px; }
}

/* Estimart 3.5.2 — tenant navigation system */
body.estimart-app.tenant-menu-vertical,
body.estimart-app.tenant-menu-horizontal {
    --tenant-nav-width: 272px;
    --tenant-nav-dark: #253b37;
    --tenant-nav-dark-2: #334f49;
    --tenant-nav-accent: var(--color4, #00b8c4);
    --tenant-nav-border: rgba(255, 255, 255, .09);
    --tenant-topbar-border: rgba(88, 115, 109, .14);
    --tenant-topbar-bg: rgba(255, 255, 255, .92);
}

body.estimart-app.tenant-menu-vertical .wrapper,
body.estimart-app.tenant-menu-horizontal .wrapper {
    min-height: 100vh;
    align-items: stretch;
    background: var(--estimart-ui-bg, #f4f7f6);
}

body.estimart-app .tenant-sidebar {
    z-index: 1038;
    color: #fff;
    border: 0;
    background: linear-gradient(180deg, var(--tenant-nav-dark) 0%, var(--tenant-nav-dark-2) 100%) !important;
    box-shadow: 18px 0 42px rgba(25, 45, 40, .08);
}

body.estimart-app.tenant-menu-vertical .tenant-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: var(--tenant-nav-width);
    min-width: var(--tenant-nav-width);
    max-width: var(--tenant-nav-width);
    height: 100vh;
    overflow-x: hidden;
    overflow-y: auto;
    transition: transform .24s ease, box-shadow .24s ease;
}

body.estimart-app .tenant-sidebar .sidebar-header {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 88px;
    padding: 21px 24px !important;
    border-bottom: 1px solid var(--tenant-nav-border);
}

body.estimart-app .tenant-sidebar .sidebar-header img {
    display: block;
    width: auto;
    max-width: 190px !important;
    max-height: 48px;
    object-fit: contain;
    filter: brightness(0) invert(1);
    opacity: .98;
}

body.estimart-app .tenant-sidebar ul.components {
    margin: 0;
    padding: 17px 12px 28px !important;
}

body.estimart-app .tenant-sidebar ul.components > li {
    margin: 4px 0;
}

body.estimart-app .tenant-sidebar ul.components > li > a,
body.estimart-app .tenant-sidebar ul.components > li > a.list-group-item {
    position: relative;
    display: grid !important;
    grid-template-columns: 24px minmax(0, 1fr) 12px !important;
    align-items: center !important;
    gap: 11px !important;
    min-height: 46px;
    padding: 10px 13px !important;
    border: 0 !important;
    border-radius: 12px !important;
    color: rgba(255, 255, 255, .76) !important;
    background: transparent !important;
    font-size: 12.5px !important;
    font-weight: 520;
    line-height: 1.25;
    box-shadow: none !important;
    transition: color .18s ease, background-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

body.estimart-app .tenant-sidebar ul.components > li > a:not(.dropdown-toggle) {
    grid-template-columns: 24px minmax(0, 1fr) !important;
}

body.estimart-app .tenant-sidebar ul.components > li > a:hover,
body.estimart-app .tenant-sidebar ul.components > li > a:focus {
    color: #fff !important;
    background: rgba(255, 255, 255, .08) !important;
    transform: translateX(2px);
}

body.estimart-app .tenant-sidebar ul.components > li > a.nav-active,
body.estimart-app .tenant-sidebar ul.components > li.active > a {
    color: #fff !important;
    background: linear-gradient(135deg, var(--tenant-nav-accent), color-mix(in srgb, var(--tenant-nav-accent) 78%, #087985)) !important;
    box-shadow: 0 10px 24px color-mix(in srgb, var(--tenant-nav-accent) 24%, transparent) !important;
}

body.estimart-app .tenant-sidebar ul.components > li > a i {
    display: inline-grid !important;
    place-items: center;
    width: 20px !important;
    height: 20px !important;
    margin: 0 !important;
    color: rgba(255, 255, 255, .68) !important;
    font-size: 15px !important;
    line-height: 1 !important;
    filter: brightness(0) invert(1) opacity(.72);
}

body.estimart-app .tenant-sidebar ul.components > li > a:hover i,
body.estimart-app .tenant-sidebar ul.components > li > a.nav-active i,
body.estimart-app .tenant-sidebar ul.components > li > a[aria-expanded="true"] i {
    color: #fff !important;
    filter: brightness(0) invert(1) opacity(1) !important;
}

body.estimart-app .tenant-sidebar .dropdown-toggle::after {
    position: static !important;
    justify-self: end;
    display: block !important;
    margin: 0 1px 0 0 !important;
    border-width: 4px 4px 0 !important;
    color: rgba(255, 255, 255, .48);
    transform: rotate(0deg);
    transition: transform .18s ease;
}

body.estimart-app .tenant-sidebar .dropdown-toggle[aria-expanded="true"]::after {
    transform: rotate(180deg);
}

body.estimart-app .tenant-sidebar .collapse.list-group,
body.estimart-app .tenant-sidebar .collapsing.list-group {
    margin: 5px 0 8px 35px;
    padding: 4px 0 4px 12px !important;
    border-left: 1px solid rgba(255, 255, 255, .12);
    background: transparent !important;
}

body.estimart-app .tenant-sidebar .collapse li,
body.estimart-app .tenant-sidebar .collapsing li {
    margin: 2px 0;
}

body.estimart-app .tenant-sidebar .collapse li > a,
body.estimart-app .tenant-sidebar .collapsing li > a {
    display: block !important;
    min-height: 34px;
    padding: 8px 10px !important;
    border-radius: 9px;
    color: rgba(255, 255, 255, .62) !important;
    background: transparent !important;
    font-size: 11.5px !important;
    font-weight: 500;
    line-height: 1.35;
}

body.estimart-app .tenant-sidebar .collapse li > a:hover,
body.estimart-app .tenant-sidebar .collapse li > a.nav-active {
    color: #fff !important;
    background: rgba(255, 255, 255, .09) !important;
}

body.estimart-app.tenant-menu-vertical #content {
    width: calc(100% - var(--tenant-nav-width));
    min-height: 100vh;
    margin-left: var(--tenant-nav-width);
    padding: 0 30px 34px;
    transition: width .24s ease, margin-left .24s ease;
}

body.estimart-app.tenant-menu-vertical.tenant-sidebar-collapsed .tenant-sidebar {
    transform: translateX(-100%);
}

body.estimart-app.tenant-menu-vertical.tenant-sidebar-collapsed #content {
    width: 100%;
    margin-left: 0;
}

body.estimart-app .tenant-topbar {
    position: sticky;
    top: 0;
    z-index: 1025;
    min-height: 76px;
    margin: 0 -30px 27px;
    padding: 0;
    border: 0;
    border-bottom: 1px solid var(--tenant-topbar-border);
    border-radius: 0;
    background: var(--tenant-topbar-bg) !important;
    box-shadow: none;
    backdrop-filter: blur(16px);
}

body.estimart-app .tenant-topbar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    min-height: 76px;
    padding: 11px 30px;
}

body.estimart-app .tenant-topbar__start,
body.estimart-app .tenant-topbar__actions {
    display: flex;
    align-items: center;
    gap: 13px;
    min-width: 0;
}

body.estimart-app .tenant-menu-button {
    display: inline-flex;
    flex: 0 0 42px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid #dbe5e2;
    border-radius: 12px;
    color: #425651;
    background: #fff;
    box-shadow: 0 6px 18px rgba(30, 55, 49, .06);
    transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

body.estimart-app .tenant-menu-button:hover {
    border-color: color-mix(in srgb, var(--tenant-nav-accent) 55%, #dbe5e2);
    transform: translateY(-1px);
    box-shadow: 0 9px 22px rgba(30, 55, 49, .09);
}

body.estimart-app .tenant-menu-button span {
    display: block;
    width: 17px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
}

body.estimart-app .tenant-topbar__heading {
    min-width: 0;
}

body.estimart-app .tenant-topbar__heading h1 {
    margin: 0;
    overflow: hidden;
    color: var(--estimart-ui-ink, #1d2b28);
    font-size: 19px;
    font-weight: 650;
    line-height: 1.2;
    letter-spacing: -.018em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.estimart-app .tenant-topbar__heading p {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 4px 0 0;
    color: var(--estimart-ui-muted, #6f807c);
    font-size: 10.5px;
    font-weight: 500;
    line-height: 1.3;
}

body.estimart-app .tenant-topbar__separator {
    display: inline-block;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #bdcbc7;
}

body.estimart-app .tenant-demo-badge {
    border-radius: 999px;
    font-size: 9.5px;
    letter-spacing: .04em;
}

body.estimart-app .tenant-account-button {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    min-height: 48px;
    padding: 6px 11px 6px 6px;
    border: 1px solid #dbe5e2;
    border-radius: 999px;
    color: var(--estimart-ui-ink, #1d2b28);
    background: #fff;
    box-shadow: 0 6px 18px rgba(30, 55, 49, .055);
}

body.estimart-app .tenant-account-button::after {
    display: none !important;
}

body.estimart-app .tenant-account-avatar {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    overflow: hidden;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(135deg, var(--color2, #58736d), var(--tenant-nav-accent));
}

body.estimart-app .tenant-account-avatar img,
body.estimart-app .tenant-account-avatar .rounded-circle,
body.estimart-app .tenant-account-avatar > * {
    width: 36px !important;
    height: 36px !important;
    max-width: 36px !important;
    max-height: 36px !important;
    margin: 0 !important;
    border-radius: 50% !important;
    object-fit: cover;
}

body.estimart-app .tenant-account-copy {
    display: block;
    min-width: 0;
    text-align: left;
}

body.estimart-app .tenant-account-copy strong,
body.estimart-app .tenant-account-copy small {
    display: block;
    max-width: 170px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.estimart-app .tenant-account-copy strong {
    color: var(--estimart-ui-ink, #1d2b28);
    font-size: 11.5px;
    font-weight: 650;
}

body.estimart-app .tenant-account-copy small {
    margin-top: 1px;
    color: var(--estimart-ui-muted, #6f807c);
    font-size: 9.5px;
}

body.estimart-app .tenant-account-chevron {
    width: 7px;
    height: 7px;
    margin: 0 3px 3px 1px;
    border-right: 1.5px solid #7a8b87;
    border-bottom: 1.5px solid #7a8b87;
    transform: rotate(45deg);
}

body.estimart-app .tenant-account-dropdown {
    min-width: 215px;
    margin-top: 8px !important;
    padding: 7px;
    border: 1px solid #dce6e3;
    border-radius: 13px;
    box-shadow: 0 18px 42px rgba(30, 55, 49, .13);
}

body.estimart-app .tenant-account-dropdown .dropdown-item {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 39px;
    padding: 8px 10px;
    border-radius: 9px;
    color: #425651;
    font-size: 11.5px;
    font-weight: 550;
}

body.estimart-app .tenant-account-dropdown .dropdown-item i {
    display: inline-grid;
    place-items: center;
    width: 18px;
    color: #748681;
}

body.estimart-app .tenant-account-dropdown .dropdown-item:hover,
body.estimart-app .tenant-account-dropdown .dropdown-item.nav-active {
    color: var(--color2, #58736d) !important;
    background: color-mix(in srgb, var(--color2, #58736d) 9%, white) !important;
}

body.estimart-app .tenant-account-dropdown .tenant-logout-link {
    color: #b54040;
}

body.estimart-app .tenant-sidebar-backdrop {
    display: none;
}

/* Horizontal menu retains the tenant's selectable layout but uses the same visual language. */
body.estimart-app.tenant-menu-horizontal .wrapper {
    display: block !important;
}

body.estimart-app.tenant-menu-horizontal #content {
    width: 100%;
    min-height: calc(100vh - 68px);
    padding: 0 30px 34px;
}

body.estimart-app .tenant-horizontal-nav {
    position: sticky;
    top: 0;
    z-index: 1030;
    min-height: 68px;
    margin: 0;
    padding: 8px 22px;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    border-radius: 0;
    color: #fff;
    background: linear-gradient(90deg, var(--tenant-nav-dark), var(--tenant-nav-dark-2)) !important;
    box-shadow: 0 10px 30px rgba(25, 45, 40, .12);
}

body.estimart-app .tenant-horizontal-nav .sidebar-header {
    padding: 0 !important;
}

body.estimart-app .tenant-horizontal-nav .sidebar-header img {
    display: block;
    width: auto;
    max-width: 155px !important;
    max-height: 38px !important;
    padding: 0 !important;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

body.estimart-app .tenant-horizontal-nav .navbar-nav {
    gap: 2px;
}

body.estimart-app .tenant-horizontal-nav .navbar-nav > .nav-item > .nav-link,
body.estimart-app .tenant-horizontal-nav .navbar-nav > .nav-item > .dropdown-toggle {
    min-height: 40px;
    padding: 8px 10px !important;
    border-radius: 10px;
    color: rgba(255, 255, 255, .74) !important;
    background: transparent !important;
    font-size: 10.8px;
    font-weight: 520;
    white-space: nowrap;
}

body.estimart-app .tenant-horizontal-nav .navbar-nav > .nav-item > .nav-link:hover,
body.estimart-app .tenant-horizontal-nav .navbar-nav > .nav-item > .nav-link.nav-active,
body.estimart-app .tenant-horizontal-nav .navbar-nav > .nav-item > .dropdown-toggle:hover,
body.estimart-app .tenant-horizontal-nav .navbar-nav > .nav-item > .dropdown-toggle[aria-expanded="true"] {
    color: #fff !important;
    background: rgba(255, 255, 255, .09) !important;
}

body.estimart-app .tenant-horizontal-nav .navbar-nav i {
    filter: brightness(0) invert(1) opacity(.75);
}

body.estimart-app .tenant-horizontal-nav .navbar-submenu,
body.estimart-app .tenant-horizontal-nav .dropdown-menu {
    min-width: 205px !important;
    padding: 7px !important;
    border: 1px solid #dce6e3 !important;
    border-radius: 12px !important;
    background: #fff !important;
    box-shadow: 0 18px 42px rgba(30, 55, 49, .16) !important;
}

body.estimart-app .tenant-horizontal-nav .navbar-submenu .nav-link,
body.estimart-app .tenant-horizontal-nav .dropdown-menu .dropdown-item {
    min-height: 36px;
    padding: 8px 10px !important;
    border-radius: 8px;
    color: #425651 !important;
    background: transparent !important;
    font-size: 10.8px !important;
}

body.estimart-app .tenant-horizontal-nav .navbar-submenu .nav-link:hover,
body.estimart-app .tenant-horizontal-nav .navbar-submenu .nav-link.nav-active,
body.estimart-app .tenant-horizontal-nav .dropdown-menu .dropdown-item:hover,
body.estimart-app .tenant-horizontal-nav .dropdown-menu .dropdown-item.nav-active {
    color: var(--color2, #58736d) !important;
    background: color-mix(in srgb, var(--color2, #58736d) 9%, white) !important;
}

body.estimart-app.tenant-menu-horizontal .tenant-topbar {
    top: 68px;
}

body.estimart-app.tenant-menu-horizontal .tenant-topbar .tenant-menu-button {
    display: none;
}

@media (max-width: 1199.98px) {
    body.estimart-app .tenant-account-copy {
        display: none;
    }
    body.estimart-app .tenant-account-button {
        min-width: 48px;
        width: 48px;
        padding: 5px;
    }
    body.estimart-app .tenant-account-chevron {
        display: none;
    }
}

@media (max-width: 819.98px) {
    body.estimart-app.tenant-menu-vertical .wrapper,
    body.estimart-app.tenant-menu-horizontal .wrapper {
        display: block !important;
    }

    body.estimart-app.tenant-menu-vertical .tenant-sidebar,
    body.estimart-app.tenant-menu-horizontal .tenant-sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        display: block !important;
        width: min(286px, 86vw);
        min-width: min(286px, 86vw);
        max-width: min(286px, 86vw);
        height: 100vh;
        margin: 0 !important;
        transform: translateX(-104%);
        box-shadow: 22px 0 55px rgba(20, 39, 35, .22);
    }

    body.estimart-app .tenant-sidebar.active {
        transform: translateX(0) !important;
    }

    body.estimart-app .tenant-sidebar.active + .tenant-sidebar-backdrop {
        position: fixed;
        inset: 0;
        z-index: 1036;
        display: block;
        width: 100%;
        height: 100%;
        padding: 0;
        border: 0;
        background: rgba(20, 39, 35, .44);
        backdrop-filter: blur(2px);
    }

    body.estimart-app.tenant-menu-vertical #content,
    body.estimart-app.tenant-menu-horizontal #content {
        width: 100%;
        margin-left: 0;
        padding: 0 16px 28px;
    }

    body.estimart-app .tenant-topbar,
    body.estimart-app.tenant-menu-horizontal .tenant-topbar {
        top: 0;
        min-height: 68px;
        margin: 0 -16px 20px;
    }

    body.estimart-app .tenant-topbar__inner {
        min-height: 68px;
        padding: 9px 16px;
    }

    body.estimart-app .tenant-topbar__heading h1 {
        font-size: 16px;
    }

    body.estimart-app .tenant-topbar__heading p {
        max-width: 48vw;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    body.estimart-app.tenant-menu-horizontal .tenant-topbar .tenant-menu-button {
        display: inline-flex;
    }

    body.estimart-app .tenant-horizontal-nav {
        display: none !important;
    }
}

@media (max-width: 479.98px) {
    body.estimart-app .tenant-topbar__heading p,
    body.estimart-app .tenant-demo-badge {
        display: none;
    }
    body.estimart-app .tenant-topbar__start {
        gap: 9px;
    }
    body.estimart-app .tenant-menu-button {
        flex-basis: 39px;
        width: 39px;
        height: 39px;
    }
}

/* Estimart 3.5.3 — lighter tenant navigation, wider submenu rows, and unified buttons. */
body.estimart-app {
    --tenant-nav-width: 292px;
    --tenant-nav-light: var(--estimart-ui-canvas, #f4f7f6);
    --tenant-nav-light-hover: #e8f0ed;
    --tenant-nav-text: #52645f;
    --tenant-nav-muted: #71847f;
}
body.estimart-app .tenant-sidebar {
    color: var(--estimart-ui-ink);
    border-right: 1px solid var(--estimart-ui-border);
    background:
        radial-gradient(circle at 14% 0, color-mix(in srgb, var(--estimart-ui-accent) 8%, transparent), transparent 17rem),
        var(--tenant-nav-light) !important;
    box-shadow: 12px 0 34px rgba(29,43,40,.055);
}
body.estimart-app .tenant-sidebar .sidebar-header { border-bottom-color: var(--estimart-ui-border); }
body.estimart-app .tenant-sidebar .sidebar-header img { filter: none; opacity: 1; }
body.estimart-app .tenant-sidebar ul.components > li > a,
body.estimart-app .tenant-sidebar ul.components > li > a.list-group-item {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    width: calc(100% - 2px);
    min-width: 0;
    padding: 10px 14px !important;
    color: var(--tenant-nav-text) !important;
}
body.estimart-app .tenant-sidebar ul.components > li > a > i {
    flex: 0 0 22px;
    color: var(--tenant-nav-muted) !important;
    filter: none !important;
}
body.estimart-app .tenant-sidebar ul.components > li > a:hover,
body.estimart-app .tenant-sidebar ul.components > li > a:focus {
    color: var(--estimart-ui-primary) !important;
    background: var(--tenant-nav-light-hover) !important;
}
body.estimart-app .tenant-sidebar ul.components > li > a:hover i,
body.estimart-app .tenant-sidebar ul.components > li > a:focus i { color: var(--estimart-ui-primary) !important; filter: none !important; }
body.estimart-app .tenant-sidebar ul.components > li > a.nav-active,
body.estimart-app .tenant-sidebar ul.components > li.active > a {
    color: #fff !important;
    background: linear-gradient(135deg, color-mix(in srgb, var(--estimart-ui-primary) 88%, #7faaa0), var(--estimart-ui-primary)) !important;
    box-shadow: 0 10px 24px color-mix(in srgb, var(--estimart-ui-primary) 20%, transparent) !important;
}
body.estimart-app .tenant-sidebar ul.components > li > a.nav-active i,
body.estimart-app .tenant-sidebar ul.components > li.active > a i,
body.estimart-app .tenant-sidebar ul.components > li > a[aria-expanded="true"] i {
    color: #fff !important;
    filter: brightness(0) invert(1) opacity(1) !important;
}
body.estimart-app .tenant-sidebar .dropdown-toggle { padding-right: 38px !important; }
body.estimart-app .tenant-sidebar .dropdown-toggle::after {
    position: absolute !important;
    top: 50%;
    right: 15px;
    margin: 0 !important;
    color: #81918d;
    transform: translateY(-50%) rotate(0deg);
}
body.estimart-app .tenant-sidebar .dropdown-toggle[aria-expanded="true"]::after {
    transform: translateY(-50%) rotate(180deg);
}
body.estimart-app .tenant-sidebar .collapse.list-group,
body.estimart-app .tenant-sidebar .collapsing.list-group {
    margin-left: 43px;
    border-left-color: #cad8d4;
}
body.estimart-app .tenant-sidebar .collapse li > a,
body.estimart-app .tenant-sidebar .collapsing li > a {
    padding: 9px 12px !important;
    color: #6b7d78 !important;
}
body.estimart-app .tenant-sidebar .collapse li > a:hover,
body.estimart-app .tenant-sidebar .collapse li > a.nav-active {
    color: var(--estimart-ui-primary) !important;
    background: #e7efec !important;
}
body.estimart-app .tenant-horizontal-nav {
    color: var(--estimart-ui-ink);
    border-bottom-color: var(--estimart-ui-border);
    background: rgba(244,247,246,.97) !important;
    box-shadow: 0 10px 30px rgba(29,43,40,.07);
}
body.estimart-app .tenant-horizontal-nav .sidebar-header img { filter: none; }
body.estimart-app .tenant-horizontal-nav .navbar-nav > .nav-item > .nav-link,
body.estimart-app .tenant-horizontal-nav .navbar-nav > .nav-item > .dropdown-toggle {
    color: var(--tenant-nav-text) !important;
}
body.estimart-app .tenant-horizontal-nav .navbar-nav > .nav-item > .nav-link:hover,
body.estimart-app .tenant-horizontal-nav .navbar-nav > .nav-item > .nav-link.nav-active,
body.estimart-app .tenant-horizontal-nav .navbar-nav > .nav-item > .dropdown-toggle:hover,
body.estimart-app .tenant-horizontal-nav .navbar-nav > .nav-item > .dropdown-toggle[aria-expanded="true"] {
    color: var(--estimart-ui-primary) !important;
    background: #e8f0ed !important;
}
body.estimart-app .tenant-horizontal-nav .navbar-nav i { color: var(--tenant-nav-muted) !important; filter: none !important; }

body.estimart-app .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border-width: 1px;
    border-style: solid;
    line-height: 1.2;
    text-decoration: none;
    transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease, border-color .16s ease, color .16s ease;
}
body.estimart-app .btn:hover { box-shadow: 0 7px 18px rgba(29,43,40,.1); }
body.estimart-app .btn:active { transform: translateY(0); box-shadow: none; }
body.estimart-app .btn > i,
body.estimart-app .btn > .svg-inline--fa { flex: 0 0 auto; margin: 0 !important; line-height: 1; }
body.estimart-app .btn-success {
    border-color: #2c7a62 !important;
    color: #fff !important;
    background: #2c7a62 !important;
}
body.estimart-app .btn-danger {
    border-color: #c94747 !important;
    color: #fff !important;
    background: #c94747 !important;
}
body.estimart-app .btn-warning {
    border-color: #b37a23 !important;
    color: #fff !important;
    background: #b37a23 !important;
}
body.estimart-app .btn-info {
    border-color: var(--estimart-ui-accent) !important;
    color: #fff !important;
    background: var(--estimart-ui-accent) !important;
}
body.estimart-app .btn-outline-secondary {
    border-color: #c5d1ce !important;
    color: #5f716c !important;
    background: #fff !important;
}
body.estimart-app .btn-outline-danger {
    border-color: #e0a9a9 !important;
    color: #c94747 !important;
    background: #fff !important;
}
body.estimart-app .btn-outline-danger:hover {
    border-color: #c94747 !important;
    color: #fff !important;
    background: #c94747 !important;
}

/* Estimart 3.5.4 — shared control tokens and intuitive tenant settings. */
:root {
    --estimart-control-height: 44px;
    --estimart-control-radius: 10px;
    --estimart-control-border: #d5e0dd;
    --estimart-control-focus: var(--estimart-ui-primary, #58736d);
    --estimart-button-height: 40px;
    --estimart-button-radius: 10px;
    --estimart-nav-canvas: var(--estimart-ui-canvas, #f4f7f6);
    --estimart-nav-hover: #e8f0ed;
    --estimart-nav-text: #52645f;
    --estimart-nav-muted: #71847f;
}

body.estimart-app .form-control,
body.estimart-app .form-select,
body.estimart-app select.form-control,
body.estimart-app .select-input,
body.estimart-app input.form-control {
    min-height: var(--estimart-control-height) !important;
    height: auto;
    padding: 10px 13px;
    border: 1px solid var(--estimart-control-border) !important;
    border-radius: var(--estimart-control-radius) !important;
    background-color: #fff;
    color: var(--estimart-ui-ink, #1d2b28);
    font-size: 12.5px;
    line-height: 1.35;
    box-shadow: none !important;
}
body.estimart-app textarea.form-control {
    min-height: 112px !important;
    padding-top: 11px;
}
body.estimart-app input[type="color"].form-control { min-height: var(--estimart-control-height) !important; padding: 5px; }
body.estimart-app input[type="file"].form-control { padding: 7px 10px; line-height: 1.7; }
body.estimart-app .form-control:focus,
body.estimart-app .form-select:focus,
body.estimart-app select.form-control:focus,
body.estimart-app .select-input:focus {
    border-color: color-mix(in srgb, var(--estimart-control-focus) 72%, white) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--estimart-control-focus) 13%, transparent) !important;
}
body.estimart-app .form-control[readonly],
body.estimart-app .form-control:disabled,
body.estimart-app .form-select:disabled {
    color: #687a75;
    background: #f2f6f4 !important;
    opacity: 1;
}
body.estimart-app .form-outline,
body.estimart-app .form-floating,
body.estimart-app .input-group { min-width: 0; }
body.estimart-app .input-group > .form-control,
body.estimart-app .input-group > .form-select,
body.estimart-app .input-group > .btn,
body.estimart-app .input-group > .input-group-text { min-height: var(--estimart-control-height) !important; }
body.estimart-app .input-group-text {
    padding: 0 12px;
    border-color: var(--estimart-control-border) !important;
    background: #f6f9f8;
}
body.estimart-app .input-group > :first-child { border-top-left-radius: var(--estimart-control-radius) !important; border-bottom-left-radius: var(--estimart-control-radius) !important; }
body.estimart-app .input-group > :last-child { border-top-right-radius: var(--estimart-control-radius) !important; border-bottom-right-radius: var(--estimart-control-radius) !important; }
body.estimart-app .form-check-input { width: 17px; height: 17px; border-color: #b9c9c5; }
body.estimart-app .form-check-input:checked { border-color: var(--estimart-ui-accent, #00b8c4); background-color: var(--estimart-ui-accent, #00b8c4); }

body.estimart-app .btn {
    min-height: var(--estimart-button-height) !important;
    padding: 9px 15px !important;
    border-radius: var(--estimart-button-radius) !important;
    vertical-align: middle;
    white-space: normal;
}
body.estimart-app .btn-sm { min-height: 34px !important; padding: 7px 11px !important; border-radius: 9px !important; }
body.estimart-app .btn-lg { min-height: 48px !important; padding: 12px 20px !important; border-radius: 12px !important; }
body.estimart-app .btn > i,
body.estimart-app .btn > svg,
body.estimart-app .btn > .svg-inline--fa {
    display: inline-grid;
    place-items: center;
    width: 1.1em;
    height: 1.1em;
    flex: 0 0 1.1em;
    margin: 0 !important;
    line-height: 1;
    vertical-align: middle;
}
body.estimart-app .btn-group,
body.estimart-app .sa-page-actions,
body.estimart-app .sa-form-actions,
body.estimart-app .modal-footer,
body.estimart-app .card-header .d-flex,
body.estimart-app td .d-flex {
    align-items: center;
}
body.estimart-app .modal-footer,
body.estimart-app .sa-page-actions,
body.estimart-app .sa-form-actions { gap: 8px; }
body.estimart-app td .btn,
body.estimart-app .table .btn { margin-top: 0 !important; margin-bottom: 0 !important; }
body.estimart-app .btn-icon,
body.estimart-app .btn[aria-label]:not(.btn-link) {
    justify-content: center;
}

.estimart-settings-shell {
    display: grid;
    grid-template-columns: 286px minmax(0, 1fr);
    gap: 22px;
    align-items: start;
    width: 100%;
}
.estimart-settings-nav {
    position: sticky;
    top: 96px;
    max-height: calc(100vh - 118px);
    overflow: auto;
    padding: 15px;
    border: 1px solid var(--estimart-ui-border);
    border-radius: 17px;
    background: rgba(255,255,255,.9);
    box-shadow: var(--estimart-ui-shadow-sm);
}
.estimart-settings-nav__brand {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 4px 3px 15px;
    border-bottom: 1px solid var(--estimart-ui-border);
}
.estimart-settings-nav__brand > div { min-width: 0; }
.estimart-settings-nav__brand strong,
.estimart-settings-nav__brand small { display: block; }
.estimart-settings-nav__brand strong { color: var(--estimart-ui-ink); font-size: 13px; font-weight: 700; }
.estimart-settings-nav__brand small { margin-top: 2px; color: var(--estimart-ui-muted); font-size: 9.5px; line-height: 1.4; }
.estimart-settings-nav__icon {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    border: 1px solid color-mix(in srgb, var(--estimart-ui-primary) 18%, white);
    border-radius: 12px;
    color: var(--estimart-ui-primary);
    background: color-mix(in srgb, var(--estimart-ui-primary) 9%, white);
}
.estimart-settings-search { padding: 15px 0 7px; }
.estimart-settings-search label { display: block; }
.estimart-settings-nav__groups { display: grid; gap: 5px; }
.estimart-settings-nav__group { display: grid; gap: 3px; }
.estimart-settings-nav__label {
    padding: 13px 9px 5px;
    color: #8a9995;
    font-size: 9px;
    font-weight: 750;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.estimart-settings-nav__item {
    display: grid;
    grid-template-columns: 22px minmax(0,1fr);
    gap: 10px;
    align-items: center;
    min-height: 44px;
    padding: 9px 10px;
    border-radius: 10px;
    color: var(--estimart-nav-text) !important;
    text-decoration: none !important;
    transition: background-color .16s ease, color .16s ease, transform .16s ease;
}
.estimart-settings-nav__item > i { width: 22px; color: var(--estimart-nav-muted); text-align: center; }
.estimart-settings-nav__item span,
.estimart-settings-nav__item strong,
.estimart-settings-nav__item small { display: block; min-width: 0; }
.estimart-settings-nav__item strong { font-size: 11px; font-weight: 650; }
.estimart-settings-nav__item small { display: none; margin-top: 2px; color: inherit; font-size: 9px; opacity: .74; line-height: 1.35; }
.estimart-settings-nav__item:hover { color: var(--estimart-ui-primary) !important; background: var(--estimart-nav-hover); transform: translateX(1px); }
.estimart-settings-nav__item:hover > i { color: var(--estimart-ui-primary); }
.estimart-settings-nav__item.active {
    color: #fff !important;
    background: linear-gradient(135deg, color-mix(in srgb, var(--estimart-ui-primary) 88%, #7faaa0), var(--estimart-ui-primary));
    box-shadow: 0 8px 20px color-mix(in srgb, var(--estimart-ui-primary) 18%, transparent);
}
.estimart-settings-nav__item.active > i { color: #fff; }
.estimart-settings-main { min-width: 0; }
.estimart-settings-page-heading {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
    padding: 2px 2px 0;
}
.estimart-settings-page-heading h2 { margin: 4px 0 4px; font-size: 23px; }
.estimart-settings-page-heading p { max-width: 720px; margin: 0; }
.estimart-settings-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
    color: var(--estimart-ui-primary) !important;
    font-size: 10.5px;
    font-weight: 650;
    text-decoration: none !important;
}
.estimart-settings-eyebrow {
    display: block;
    color: var(--estimart-ui-primary);
    font-size: 9.5px;
    font-weight: 750;
    letter-spacing: .11em;
    text-transform: uppercase;
}
.estimart-settings-overview { display: grid; gap: 20px; }
.estimart-settings-hero {
    display: grid;
    grid-template-columns: minmax(0,1.15fr) minmax(280px,.85fr);
    gap: 22px;
    align-items: center;
    padding: 24px !important;
    background:
        radial-gradient(circle at 95% 0, color-mix(in srgb, var(--estimart-ui-accent) 10%, transparent), transparent 20rem),
        #fff !important;
}
.estimart-settings-hero h2 { margin: 5px 0 7px; font-size: 25px; }
.estimart-settings-hero p { max-width: 680px; margin: 0; }
.estimart-settings-overview__groups { display: grid; gap: 18px; }
.estimart-settings-group-card {
    padding: 19px;
    border: 1px solid var(--estimart-ui-border);
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--estimart-ui-shadow-sm);
}
.estimart-settings-group-card__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.estimart-settings-group-card__heading span { color: var(--estimart-ui-ink); font-size: 13px; font-weight: 700; }
.estimart-settings-group-card__heading small { color: var(--estimart-ui-muted); font-size: 9.5px; }
.estimart-settings-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.estimart-settings-card {
    display: grid;
    grid-template-columns: 42px minmax(0,1fr) 14px;
    gap: 12px;
    align-items: center;
    min-height: 88px;
    padding: 13px;
    border: 1px solid #e2eae7;
    border-radius: 13px;
    color: var(--estimart-ui-ink) !important;
    background: #fbfdfc;
    text-decoration: none !important;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease, background-color .16s ease;
}
.estimart-settings-card:hover {
    border-color: color-mix(in srgb, var(--estimart-ui-primary) 32%, #e2eae7);
    background: #fff;
    box-shadow: 0 10px 24px rgba(29,43,40,.075);
    transform: translateY(-1px);
}
.estimart-settings-card__icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    color: var(--estimart-ui-primary);
    background: color-mix(in srgb, var(--estimart-ui-primary) 9%, white);
}
.estimart-settings-card__copy,
.estimart-settings-card__copy strong,
.estimart-settings-card__copy small { display: block; min-width: 0; }
.estimart-settings-card__copy strong { font-size: 11.5px; font-weight: 700; }
.estimart-settings-card__copy small { margin-top: 3px; color: var(--estimart-ui-muted); font-size: 9.5px; line-height: 1.45; }
.estimart-settings-card__arrow { color: #a4b2ae; font-size: 10px; }
.estimart-settings-empty {
    display: grid;
    place-items: center;
    gap: 6px;
    padding: 36px 20px;
    border: 1px dashed #bdcbc7;
    border-radius: 15px;
    color: var(--estimart-ui-muted);
    text-align: center;
    background: #f9fbfa;
}
.estimart-settings-empty[hidden] { display: none !important; }
.estimart-settings-empty i { color: var(--estimart-ui-primary); font-size: 24px; }
.estimart-settings-empty strong { color: var(--estimart-ui-ink); font-size: 12px; }
.estimart-settings-empty span { font-size: 10px; }

@media (max-width: 1199.98px) {
    .estimart-settings-shell { grid-template-columns: 248px minmax(0,1fr); gap: 16px; }
    .estimart-settings-card-grid { grid-template-columns: 1fr; }
}
@media (max-width: 899.98px) {
    .estimart-settings-shell { grid-template-columns: 1fr; }
    .estimart-settings-nav { position: static; max-height: none; }
    .estimart-settings-nav__groups { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .estimart-settings-nav__group { align-content: start; }
    .estimart-settings-nav__item small { display: block; }
    .estimart-settings-hero { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
    .estimart-settings-nav__groups { grid-template-columns: 1fr; }
    .estimart-settings-card-grid { grid-template-columns: 1fr; }
    .estimart-settings-hero { padding: 18px !important; }
    .estimart-settings-page-heading h2 { font-size: 20px; }
}
body.estimart-app .btn-floating {
    width: var(--estimart-button-height) !important;
    min-width: var(--estimart-button-height) !important;
    height: var(--estimart-button-height) !important;
    padding: 0 !important;
    border-radius: 50% !important;
}
body.estimart-app .btn-link { min-height: 0 !important; padding: 4px 6px !important; box-shadow: none !important; }
.superadmin-body label,
.superadmin-body .form-label,
body.estimart-app .form-label,
body.estimart-app label:not(.btn):not(.form-check-label) {
    margin-bottom: 6px;
    color: #425651;
    font-size: 11.5px;
    font-weight: 650;
}

/* ========================================================================
   Estimart 3.6.0 UI foundation
   Bootstrap 5.3 structure + Estimart design tokens + SVG icon layer.
   MDB remains a compatibility layer for selected legacy components.
   ======================================================================== */
:root {
    --estimart-font-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --estimart-control-height: 44px;
    --estimart-control-radius: 10px;
    --estimart-control-border: #d4dfdc;
    --estimart-control-border-hover: #b8cac5;
    --estimart-control-bg: #ffffff;
    --estimart-control-disabled: #f1f5f4;
    --estimart-focus-ring: 0 0 0 .2rem color-mix(in srgb, var(--estimart-ui-primary) 18%, transparent);
    --estimart-button-height: 40px;
    --estimart-button-radius: 10px;
    --estimart-surface: #ffffff;
    --estimart-surface-soft: #f6f9f8;
    --estimart-surface-muted: #edf3f1;
}

html.estimart-framework-bootstrap,
body.estimart-app {
    font-family: var(--estimart-font-sans);
}

.estimart-icon,
.sa-svg-icon,
.sa-nav-svg,
.sa-control-icon,
.sa-button-icon,
.sa-account-icon {
    width: 1.25rem;
    height: 1.25rem;
    display: inline-block;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    vertical-align: middle;
}

/* Normalize Bootstrap, MDB, native, and plugin form controls. */
body.estimart-app :is(
    input.form-control,
    select.form-control,
    select.form-select,
    textarea.form-control,
    .form-outline .form-control,
    .select-wrapper .select-input,
    .select-wrapper input.select-input,
    .input-group .form-control,
    .input-group .form-select
) {
    width: 100%;
    min-height: var(--estimart-control-height);
    border: 1px solid var(--estimart-control-border) !important;
    border-radius: var(--estimart-control-radius) !important;
    background: var(--estimart-control-bg) !important;
    color: var(--estimart-ui-ink) !important;
    padding: .62rem .78rem;
    font: 500 12px/1.35 var(--estimart-font-sans);
    box-shadow: none !important;
    transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

body.estimart-app textarea.form-control {
    min-height: 112px;
    line-height: 1.55;
}

body.estimart-app :is(
    input.form-control,
    select.form-control,
    select.form-select,
    textarea.form-control,
    .form-outline .form-control,
    .select-wrapper .select-input
):hover:not(:disabled):not([readonly]) {
    border-color: var(--estimart-control-border-hover) !important;
}

body.estimart-app :is(
    input.form-control,
    select.form-control,
    select.form-select,
    textarea.form-control,
    .form-outline .form-control,
    .select-wrapper .select-input
):focus {
    border-color: var(--estimart-ui-primary) !important;
    box-shadow: var(--estimart-focus-ring) !important;
    outline: 0;
}

body.estimart-app :is(.form-control, .form-select, .select-input):disabled,
body.estimart-app :is(.form-control, .form-select, .select-input)[readonly] {
    background: var(--estimart-control-disabled) !important;
    color: #71817d !important;
    cursor: not-allowed;
    opacity: 1;
}

body.estimart-app .form-label,
body.estimart-app label:not(.form-check-label):not(.btn) {
    margin-bottom: .38rem;
    color: #42544f;
    font: 650 10.5px/1.35 var(--estimart-font-sans);
    letter-spacing: .015em;
}

body.estimart-app .input-group {
    align-items: stretch;
    flex-wrap: nowrap;
}

body.estimart-app .input-group > .input-group-text {
    min-height: var(--estimart-control-height);
    min-width: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--estimart-control-border) !important;
    background: var(--estimart-surface-soft) !important;
    color: #536762;
}

body.estimart-app .input-group > :first-child {
    border-top-left-radius: var(--estimart-control-radius) !important;
    border-bottom-left-radius: var(--estimart-control-radius) !important;
}
body.estimart-app .input-group > :last-child {
    border-top-right-radius: var(--estimart-control-radius) !important;
    border-bottom-right-radius: var(--estimart-control-radius) !important;
}

/* One button geometry across Bootstrap, MDB, table actions, and modals. */
body.estimart-app .btn {
    min-height: var(--estimart-button-height);
    min-width: 40px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    padding: .58rem .9rem;
    border-width: 1px;
    border-radius: var(--estimart-button-radius) !important;
    font: 650 11px/1.15 var(--estimart-font-sans);
    letter-spacing: .005em;
    text-transform: none !important;
    white-space: nowrap;
    box-shadow: none !important;
    vertical-align: middle;
}
body.estimart-app .btn > :is(i, svg) { margin: 0 !important; flex: 0 0 auto; }
body.estimart-app .btn-sm { min-height: 32px; min-width: 32px; padding: .4rem .65rem; border-radius: 8px !important; font-size: 10px; }
body.estimart-app .btn-lg { min-height: 48px; padding: .72rem 1.1rem; font-size: 12px; }
body.estimart-app .btn-group,
body.estimart-app .d-flex:has(> .btn) { align-items: center; }
body.estimart-app td .btn,
body.estimart-app th .btn { vertical-align: middle; }
body.estimart-app .modal-footer { align-items: center; gap: .5rem; }
body.estimart-app .modal-footer .btn { margin: 0 !important; }

/* Settings: top command center; no left-side navigation. */
.estimart-settings-workspace {
    display: grid;
    gap: 16px;
    padding: 18px;
}
.estimart-settings-command {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 380px);
    align-items: center;
    gap: 22px;
    padding: 22px !important;
    border: 1px solid var(--estimart-ui-border) !important;
    border-radius: 16px !important;
    background: linear-gradient(135deg, #fff 0%, #f5f9f7 100%) !important;
}
.estimart-settings-command__copy {
    display: flex;
    align-items: center;
    gap: 15px;
    min-width: 0;
}
.estimart-settings-command__copy h1 {
    margin: 3px 0 4px;
    color: var(--estimart-ui-ink);
    font-size: clamp(22px, 2vw, 29px);
    font-weight: 750;
    letter-spacing: -.025em;
}
.estimart-settings-command__copy p {
    max-width: 720px;
    margin: 0;
    color: var(--estimart-ui-muted);
    font-size: 11.5px;
    line-height: 1.55;
}
.estimart-settings-command__icon {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    flex: 0 0 54px;
    border: 1px solid color-mix(in srgb, var(--estimart-ui-primary) 18%, white);
    border-radius: 15px;
    background: color-mix(in srgb, var(--estimart-ui-primary) 10%, white);
    color: var(--estimart-ui-primary);
}
.estimart-settings-command__icon .estimart-icon { width: 25px; height: 25px; }
.estimart-settings-command__tools { min-width: 0; }
.estimart-settings-command__tools label { display: block; }

.estimart-settings-categories {
    display: flex;
    align-items: center;
    gap: 7px;
    overflow-x: auto;
    padding: 3px 1px 7px;
    scrollbar-width: thin;
}
.estimart-settings-category {
    min-height: 39px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
    padding: 8px 13px;
    border: 1px solid var(--estimart-ui-border);
    border-radius: 999px;
    background: #fff;
    color: #52645f;
    font-size: 10.5px;
    font-weight: 650;
    text-decoration: none !important;
    transition: .16s ease;
}
.estimart-settings-category .estimart-icon { width: 17px; height: 17px; }
.estimart-settings-category:hover {
    border-color: color-mix(in srgb, var(--estimart-ui-primary) 40%, white);
    color: var(--estimart-ui-primary);
    transform: translateY(-1px);
}
.estimart-settings-category.active {
    border-color: var(--estimart-ui-primary);
    background: var(--estimart-ui-primary);
    color: #fff;
}

.estimart-settings-context {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px 12px !important;
    border: 1px solid var(--estimart-ui-border) !important;
    border-radius: 13px !important;
}
.estimart-settings-back {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
    padding: 6px 9px;
    border-radius: 8px;
    color: var(--estimart-ui-primary) !important;
    font-size: 10px;
    font-weight: 700;
    text-decoration: none !important;
}
.estimart-settings-back .estimart-icon { width: 16px; height: 16px; }
.estimart-settings-context__links {
    min-width: 0;
    display: flex;
    gap: 5px;
    overflow-x: auto;
    padding-bottom: 1px;
}
.estimart-settings-context__link {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
    padding: 6px 10px;
    border-radius: 8px;
    color: #576964 !important;
    font-size: 10px;
    font-weight: 600;
    text-decoration: none !important;
}
.estimart-settings-context__link .estimart-icon { width: 16px; height: 16px; }
.estimart-settings-context__link:hover { background: var(--estimart-surface-soft); color: var(--estimart-ui-primary) !important; }
.estimart-settings-context__link.active { background: color-mix(in srgb, var(--estimart-ui-primary) 11%, white); color: var(--estimart-ui-primary) !important; }
.estimart-settings-main { min-width: 0; }

.estimart-settings-overview { gap: 16px; }
.estimart-settings-hero {
    display: block !important;
    padding: 19px 21px !important;
    border-radius: 14px !important;
}
.estimart-settings-hero h2 { font-size: 20px; }
.estimart-settings-overview__groups { gap: 14px; }
.estimart-settings-group-card {
    padding: 15px;
    border: 1px solid var(--estimart-ui-border);
    border-radius: 14px;
    background: #fff;
}
.estimart-settings-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.estimart-settings-card {
    min-height: 82px;
    grid-template-columns: 42px minmax(0,1fr) 18px;
    padding: 12px;
    border-radius: 11px;
}
.estimart-settings-card__icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
}
.estimart-settings-card__icon .estimart-icon { width: 21px; height: 21px; }
.estimart-settings-card__arrow .estimart-icon { width: 16px; height: 16px; }
.estimart-settings-empty > .estimart-icon { width: 25px; height: 25px; color: var(--estimart-ui-primary); }

/* Framework ownership marker for diagnostics. */
body.estimart-app::after {
    content: "";
    display: none;
}

@media (max-width: 1100px) {
    .estimart-settings-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
    .estimart-settings-workspace { padding: 12px; }
    .estimart-settings-command { grid-template-columns: 1fr; gap: 15px; padding: 17px !important; }
    .estimart-settings-command__copy { align-items: flex-start; }
    .estimart-settings-context { align-items: flex-start; flex-direction: column; }
    .estimart-settings-context__links { width: 100%; }
}
@media (max-width: 600px) {
    .estimart-settings-card-grid { grid-template-columns: 1fr; }
    .estimart-settings-command__icon { width: 46px; height: 46px; flex-basis: 46px; border-radius: 12px; }
    .estimart-settings-command__copy h1 { font-size: 21px; }
}

/* ================================================================
   Estimart 3.8 page-spacing and workflow normalization
   Applies to every tenant and Superadmin route without altering data.
   ================================================================ */
:root {
    --estimart-page-gutter: clamp(14px, 2vw, 28px);
    --estimart-section-gap: clamp(14px, 1.6vw, 22px);
    --estimart-field-gap: 14px;
    --estimart-control-height: 44px;
    --estimart-content-max: 1720px;
}
body.estimart-app #content,
body.superadmin-body .sa-content {
    min-width: 0;
}
body.estimart-app #content > :not(.tenant-topbar):not(footer):not(style):not(script),
body.superadmin-body .sa-content > :not(style):not(script) {
    max-width: var(--estimart-content-max);
}
body.estimart-app:not(.route-login):not(.route-project-portal) #content > :not(.tenant-topbar):not(footer):not(style):not(script) {
    margin-left: var(--estimart-page-gutter);
    margin-right: var(--estimart-page-gutter);
}
body.estimart-app #content > .tenant-topbar + * { margin-top: var(--estimart-section-gap); }
body.estimart-app .estimart-page-surface,
body.estimart-app .estimart-page-block { min-width: 0; }
body.estimart-app .card,
body.superadmin-body .sa-card { margin-bottom: var(--estimart-section-gap); }
body.estimart-app .card + .card,
body.superadmin-body .sa-card + .sa-card { margin-top: 0; }
body.estimart-app .card-body > :last-child,
body.superadmin-body .sa-card-body > :last-child { margin-bottom: 0; }
body.estimart-app .row,
body.superadmin-body .row { --bs-gutter-y: var(--estimart-field-gap); }
body.estimart-app form.estimart-form,
body.superadmin-body form.estimart-form { display: block; }
body.estimart-app form.estimart-form > * + *,
body.superadmin-body form.estimart-form > * + * { margin-top: var(--estimart-field-gap); }
body.estimart-app form.estimart-form .row + .row,
body.superadmin-body form.estimart-form .row + .row { margin-top: 0; }
body.estimart-app fieldset,
body.superadmin-body fieldset {
    min-width: 0;
    padding: 18px;
    margin: 0 0 var(--estimart-section-gap);
    border: 1px solid var(--estimart-ui-border, #d9e3e0);
    border-radius: 14px;
    background: #fff;
}
body.estimart-app fieldset legend,
body.superadmin-body fieldset legend {
    float: none;
    width: auto;
    padding: 0 8px;
    margin: 0 0 8px -8px;
    color: var(--estimart-ui-ink, #1d2b28);
    font-size: 13px;
    font-weight: 750;
}
body.estimart-app .form-control,
body.estimart-app .form-select,
body.superadmin-body .form-control,
body.superadmin-body .form-select {
    width: 100%;
    min-height: var(--estimart-control-height);
}
body.estimart-app input[type="color"].form-control,
body.superadmin-body input[type="color"].form-control { min-height: 44px; padding: 4px; }
body.estimart-app .form-check,
body.superadmin-body .form-check { min-height: 24px; display: flex; align-items: center; gap: 8px; }
body.estimart-app .form-check-input,
body.superadmin-body .form-check-input { flex: 0 0 auto; margin-top: 0; }
body.estimart-app .estimart-form-actions,
body.estimart-app .modal-footer,
body.estimart-app .card-footer,
body.superadmin-body .estimart-form-actions,
body.superadmin-body .modal-footer,
body.superadmin-body .sa-card-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 9px;
}
body.estimart-app .estimart-form-actions .btn,
body.superadmin-body .estimart-form-actions .btn,
body.estimart-app td.estimart-table-actions .btn,
body.superadmin-body td.estimart-table-actions .btn { margin: 0 !important; }
body.estimart-app td.estimart-table-actions,
body.superadmin-body td.estimart-table-actions { white-space: nowrap; }
body.estimart-app td.estimart-table-actions > *,
body.superadmin-body td.estimart-table-actions > * { display: inline-flex; margin: 2px; }
body.estimart-app .list-group.estimart-section-nav,
body.superadmin-body .list-group.estimart-section-nav {
    padding: 7px;
    border: 1px solid var(--estimart-ui-border, #d9e3e0);
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--estimart-ui-shadow-sm, 0 4px 16px rgba(29,43,40,.06));
}
body.estimart-app .list-group.estimart-section-nav .list-group-item,
body.superadmin-body .list-group.estimart-section-nav .list-group-item {
    margin: 2px 0;
    border: 0;
    border-radius: 9px;
}
body.estimart-app .alert,
body.superadmin-body .alert {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 13px 44px 13px 15px;
    margin-bottom: 14px;
}
body.estimart-app .alert:empty,
body.superadmin-body .alert:empty { display: none !important; }
body.estimart-app .alert .btn-close,
body.superadmin-body .alert .btn-close { position: absolute; top: 50%; right: 12px; transform: translateY(-50%); }
body.estimart-app .estimart-flash__content,
body.superadmin-body .estimart-flash__content { flex: 1 1 auto; }
body.estimart-app .modal,
body.superadmin-body .modal { padding: 12px; }
body.estimart-app .modal-dialog,
body.superadmin-body .modal-dialog { margin: 1.75rem auto; }
body.estimart-app .modal-dialog-scrollable .modal-body,
body.superadmin-body .modal-dialog-scrollable .modal-body { overflow-y: auto; }
body.estimart-app .modal-header,
body.superadmin-body .modal-header { align-items: center; gap: 12px; }
body.estimart-app .modal-title,
body.superadmin-body .modal-title { line-height: 1.3; }
body.estimart-app .dropdown-menu,
body.superadmin-body .dropdown-menu { min-width: 190px; max-width: min(360px, calc(100vw - 24px)); }
body.estimart-app .dropdown-menu.show,
body.superadmin-body .dropdown-menu.show { animation: estimartDropdownIn .14s ease-out; }
@keyframes estimartDropdownIn { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }
body.estimart-app .table-responsive { width: 100%; overflow-x: auto; }
body.estimart-app .table td .btn + .btn,
body.superadmin-body .table td .btn + .btn { margin-left: 4px; }
body.estimart-app .estimart-empty-state,
body.superadmin-body .estimart-empty-state { padding: 36px 20px; text-align: center; color: var(--estimart-ui-muted, #6c7d78); }
body.estimart-app .estimart-page-error {
    max-width: 760px;
    margin: 60px auto;
    padding: 28px;
    border: 1px solid var(--estimart-ui-border, #d9e3e0);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--estimart-ui-shadow, 0 14px 40px rgba(29,43,40,.1));
}
@media (max-width: 767.98px) {
    :root { --estimart-page-gutter: 11px; --estimart-section-gap: 12px; }
    body.estimart-app:not(.route-login):not(.route-project-portal) #content > :not(.tenant-topbar):not(footer):not(style):not(script) { margin-left: 11px; margin-right: 11px; }
    body.estimart-app .card-header, body.estimart-app .card-body, body.estimart-app .modal-header, body.estimart-app .modal-body, body.estimart-app .modal-footer { padding-left: 14px; padding-right: 14px; }
    body.estimart-app .estimart-form-actions, body.superadmin-body .estimart-form-actions { justify-content: stretch; }
    body.estimart-app .estimart-form-actions .btn, body.superadmin-body .estimart-form-actions .btn { flex: 1 1 auto; }
}
