/*
|--------------------------------------------------------------------------
| ORBI VISUAL SYSTEM
|--------------------------------------------------------------------------
| Visual layer only.
| No business logic.
| No structural data changes.
|--------------------------------------------------------------------------
*/

:root {
    --orbi-primary: #4F63FF;
    --orbi-violet: #7C5CFF;
    --orbi-violet-deep: #9C5BF3;

    --orbi-brand-gradient:
        linear-gradient(
            135deg,
            #4F63FF 0%,
            #7C5CFF 55%,
            #9C5BF3 100%
        );

    --orbi-text: #14161F;
    --orbi-text-secondary: #5C6079;
    --orbi-text-muted: #A3A7BD;

    --orbi-bg: #F4F5FB;
    --orbi-surface: #FFFFFF;

    --orbi-border: #E8E9F2;
    --orbi-border-soft: #ECECF6;
    --orbi-divider: #F1F2F8;

    --orbi-hover: #F1F2FA;
    --orbi-table-head: #FAFBFF;

    --orbi-success-bg: #E8F9EE;
    --orbi-success: #1A9A4A;

    --orbi-warning-bg: #FFF3E2;
    --orbi-warning: #C8791A;

    --orbi-danger-bg: #FDE9E9;
    --orbi-danger: #C22F2F;

    --orbi-neutral-bg: #EEF0F8;
    --orbi-neutral: #5C6079;

    --orbi-info-bg: #EEF0FB;

    --orbi-radius-card: 16px;
    --orbi-radius-control: 10px;
}

/* ---------------------------------------------------------
   Typography
--------------------------------------------------------- */

html,
body {
    background:
        var(--orbi-bg);
}

body.orbi-app-body {
    background:
        var(--orbi-bg) !important;

    color:
        var(--orbi-text);

    font-family:
        "Public Sans",
        ui-sans-serif,
        system-ui,
        sans-serif !important;

    font-size:
        14px;
}

body.orbi-app-body button,
body.orbi-app-body input,
body.orbi-app-body select,
body.orbi-app-body textarea {
    font-family:
        "Public Sans",
        ui-sans-serif,
        system-ui,
        sans-serif !important;
}

body.orbi-app-body h1,
body.orbi-app-body h2,
body.orbi-app-body h3,
body.orbi-app-body h4,
body.orbi-app-body h5,
body.orbi-app-body h6,
body.orbi-app-body .font-heading {
    font-family:
        "Manrope",
        ui-sans-serif,
        system-ui,
        sans-serif !important;

    color:
        var(--orbi-text);
}

body.orbi-app-body h1 {
    font-weight: 800;
}

body.orbi-app-body h2,
body.orbi-app-body h3 {
    font-weight: 700;
}

/* ---------------------------------------------------------
   Main application canvas
--------------------------------------------------------- */

.orbi-main {
    background:
        var(--orbi-bg) !important;

    padding:
        24px 32px 40px !important;
}

@media (max-width: 1023px) {
    .orbi-main {
        padding:
            20px 16px 32px !important;
    }
}

/* ---------------------------------------------------------
   Sidebar
--------------------------------------------------------- */

.orbi-sidebar {
    background:
        var(--orbi-surface) !important;

    border-color:
        var(--orbi-border) !important;
}

.orbi-sidebar a,
.orbi-sidebar button {
    font-family:
        "Public Sans",
        ui-sans-serif,
        system-ui,
        sans-serif !important;
}

.orbi-sidebar a {
    color:
        #40445C;
}

/*
 * Flux can expose the current element through different
 * attributes depending on component/render version.
 */
.orbi-sidebar a[aria-current="page"],
.orbi-sidebar [aria-current="page"],
.orbi-sidebar [data-current="true"],
.orbi-sidebar [data-active="true"] {
    background:
        var(--orbi-brand-gradient) !important;

    color:
        #FFFFFF !important;

    border-radius:
        var(--orbi-radius-control) !important;

    box-shadow:
        0 6px 14px rgba(79, 99, 255, 0.22) !important;
}

.orbi-sidebar a[aria-current="page"] svg,
.orbi-sidebar [aria-current="page"] svg,
.orbi-sidebar [data-current="true"] svg,
.orbi-sidebar [data-active="true"] svg {
    color:
        #FFFFFF !important;
}

.orbi-sidebar a:not([aria-current="page"]):hover {
    background:
        var(--orbi-hover) !important;
}

.orbi-sidebar [class*="uppercase"] {
    color:
        var(--orbi-text-muted) !important;

    font-size:
        11px !important;

    font-weight:
        700 !important;

    letter-spacing:
        0.06em !important;
}

/* ---------------------------------------------------------
   Tenant card
--------------------------------------------------------- */

.orbi-tenant-card {
    background:
        #FFFFFF !important;

    border:
        1px solid var(--orbi-border) !important;

    border-radius:
        var(--orbi-radius-card) !important;

    box-shadow:
        none !important;
}

.orbi-tenant-card img {
    max-height:
        58px;

    object-fit:
        contain;
}

/* ---------------------------------------------------------
   Mobile topbar
--------------------------------------------------------- */

.orbi-mobile-header {
    height:
        64px;

    background:
        #FFFFFF !important;

    border-color:
        var(--orbi-border) !important;
}

/* ---------------------------------------------------------
   Common color normalization
--------------------------------------------------------- */

body.orbi-app-body .text-slate-950,
body.orbi-app-body .text-slate-900 {
    color:
        var(--orbi-text) !important;
}

body.orbi-app-body .text-slate-800,
body.orbi-app-body .text-slate-700,
body.orbi-app-body .text-slate-600 {
    color:
        #40445C !important;
}

body.orbi-app-body .text-slate-500 {
    color:
        #777B93 !important;
}

body.orbi-app-body .text-slate-400 {
    color:
        var(--orbi-text-muted) !important;
}

body.orbi-app-body .text-blue-600,
body.orbi-app-body .text-blue-700 {
    color:
        var(--orbi-primary) !important;
}

body.orbi-app-body .border-slate-300,
body.orbi-app-body .border-slate-200 {
    border-color:
        var(--orbi-border) !important;
}

body.orbi-app-body .border-slate-100 {
    border-color:
        var(--orbi-divider) !important;
}

body.orbi-app-body .bg-slate-100 {
    background:
        var(--orbi-neutral-bg) !important;
}

body.orbi-app-body .bg-slate-50 {
    background:
        var(--orbi-table-head) !important;
}

/* ---------------------------------------------------------
   Cards
--------------------------------------------------------- */

body.orbi-app-body .rounded-2xl {
    border-radius:
        var(--orbi-radius-card) !important;
}

body.orbi-app-body .rounded-xl {
    border-radius:
        var(--orbi-radius-control) !important;
}

body.orbi-app-body .shadow-sm {
    box-shadow:
        none !important;
}

/* ---------------------------------------------------------
   Primary buttons
--------------------------------------------------------- */

body.orbi-app-body .bg-slate-950,
body.orbi-app-body .bg-blue-600,
body.orbi-app-body .bg-blue-700 {
    background:
        var(--orbi-brand-gradient) !important;

    color:
        #FFFFFF !important;

    border-color:
        transparent !important;

    box-shadow:
        0 6px 14px rgba(79, 99, 255, 0.25) !important;
}

body.orbi-app-body .bg-slate-950:hover,
body.orbi-app-body .bg-blue-600:hover,
body.orbi-app-body .bg-blue-700:hover {
    filter:
        brightness(0.98);

    transform:
        translateY(-1px);
}

/* ---------------------------------------------------------
   Inputs
--------------------------------------------------------- */

body.orbi-app-body input:not([type="checkbox"]):not([type="radio"]),
body.orbi-app-body select,
body.orbi-app-body textarea {
    border-color:
        #DFE1EE !important;

    border-radius:
        var(--orbi-radius-control) !important;
}

body.orbi-app-body input:focus,
body.orbi-app-body select:focus,
body.orbi-app-body textarea:focus {
    border-color:
        var(--orbi-primary) !important;

    box-shadow:
        0 0 0 3px rgba(79, 99, 255, 0.12) !important;

    outline:
        none !important;
}

body.orbi-app-body input::placeholder,
body.orbi-app-body textarea::placeholder {
    color:
        #B3B6C8 !important;
}

/* ---------------------------------------------------------
   Tables
--------------------------------------------------------- */

body.orbi-app-body table thead {
    background:
        var(--orbi-table-head) !important;

    color:
        var(--orbi-text-muted) !important;

    font-size:
        11px !important;

    font-weight:
        700 !important;

    text-transform:
        uppercase;

    letter-spacing:
        0.04em;
}

body.orbi-app-body table tbody tr {
    border-color:
        var(--orbi-divider) !important;
}

body.orbi-app-body table tbody tr:hover {
    background:
        #FCFCFF;
}

/* ---------------------------------------------------------
   Home
--------------------------------------------------------- */

.orbi-home > div:first-child {
    background:
        var(--orbi-brand-gradient) !important;

    border-radius:
        var(--orbi-radius-card) !important;

    box-shadow:
        none !important;

    padding:
        24px !important;
}

.orbi-home > div:first-child h1 {
    color:
        #FFFFFF !important;

    font-size:
        26px !important;

    line-height:
        1.2 !important;
}

.orbi-home > div:first-child p {
    color:
        rgba(255, 255, 255, 0.88) !important;
}

.orbi-home > div:nth-child(2) {
    border-color:
        var(--orbi-border) !important;

    border-radius:
        var(--orbi-radius-card) !important;

    box-shadow:
        none !important;
}

/* ---------------------------------------------------------
   Dashboard
--------------------------------------------------------- */

.orbi-dashboard .rounded-2xl {
    border-color:
        var(--orbi-border) !important;

    border-radius:
        var(--orbi-radius-card) !important;

    box-shadow:
        none !important;
}

.orbi-dashboard .text-3xl {
    font-family:
        "Manrope",
        ui-sans-serif,
        system-ui,
        sans-serif !important;

    font-weight:
        800 !important;
}

.orbi-dashboard table thead {
    background:
        var(--orbi-table-head) !important;
}

/* ---------------------------------------------------------
   Status colors
--------------------------------------------------------- */

body.orbi-app-body .bg-emerald-50,
body.orbi-app-body .bg-green-50 {
    background:
        var(--orbi-success-bg) !important;
}

body.orbi-app-body .text-emerald-600,
body.orbi-app-body .text-green-600 {
    color:
        var(--orbi-success) !important;
}

body.orbi-app-body .bg-amber-50,
body.orbi-app-body .bg-orange-50,
body.orbi-app-body .bg-yellow-50 {
    background:
        var(--orbi-warning-bg) !important;
}

body.orbi-app-body .text-amber-700,
body.orbi-app-body .text-orange-600,
body.orbi-app-body .text-yellow-700 {
    color:
        var(--orbi-warning) !important;
}

body.orbi-app-body .bg-red-50,
body.orbi-app-body .bg-rose-50 {
    background:
        var(--orbi-danger-bg) !important;
}

body.orbi-app-body .text-red-600,
body.orbi-app-body .text-rose-600 {
    color:
        var(--orbi-danger) !important;
}

/* ---------------------------------------------------------
   Motion
--------------------------------------------------------- */

body.orbi-app-body a,
body.orbi-app-body button,
body.orbi-app-body input,
body.orbi-app-body select,
body.orbi-app-body textarea {
    transition:
        color 150ms ease,
        background 150ms ease,
        border-color 150ms ease,
        box-shadow 150ms ease,
        transform 150ms ease;
}

@media (prefers-reduced-motion: reduce) {
    body.orbi-app-body * {
        transition:
            none !important;
    }
}


/* =========================================================
   ORBI REDESIGN 04
   Structural visual alignment with approved mockup
========================================================= */

/* ---------- sidebar width ---------- */

.orbi-sidebar {
    width:
        264px !important;
}

/* ---------- brand row ---------- */

.orbi-sidebar-brand-row {
    display:
        flex;

    align-items:
        center;

    min-height:
        46px;

    gap:
        10px;
}

.orbi-sidebar-brand {
    display:
        inline-flex;

    align-items:
        center;

    gap:
        9px;

    text-decoration:
        none;

    color:
        #14161F !important;
}

.orbi-brand-orb {
    width:
        25px;

    height:
        25px;

    flex:
        0 0 25px;

    border-radius:
        999px;

    background:
        linear-gradient(
            135deg,
            #4F63FF 0%,
            #7C5CFF 60%,
            #9C5BF3 100%
        );
}

.orbi-brand-name {
    font-family:
        "Manrope",
        ui-sans-serif,
        system-ui,
        sans-serif;

    font-size:
        17px;

    font-weight:
        800;
}

.orbi-brand-account {
    margin-left:
        auto;

    font-size:
        10px;

    font-weight:
        700;

    letter-spacing:
        .04em;

    color:
        #A3A7BD;
}

/* ---------- company selector ---------- */

.orbi-company-selector {
    display:
        flex;

    align-items:
        center;

    width:
        100%;

    min-height:
        62px;

    margin-top:
        8px;

    padding:
        10px 11px;

    gap:
        10px;

    border:
        1px solid #E8E9F2;

    border-radius:
        14px;

    background:
        #F7F7FC;

    box-sizing:
        border-box;
}

.orbi-company-avatar {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    width:
        40px;

    height:
        40px;

    flex:
        0 0 40px;

    overflow:
        hidden;

    border-radius:
        11px;

    background:
        linear-gradient(
            135deg,
            #4F63FF 0%,
            #7C5CFF 55%,
            #9C5BF3 100%
        );

    color:
        #FFFFFF;

    font-family:
        "Manrope",
        ui-sans-serif,
        system-ui,
        sans-serif;

    font-size:
        13px;

    font-weight:
        800;
}

.orbi-company-avatar img {
    width:
        100%;

    height:
        100%;

    padding:
        4px;

    box-sizing:
        border-box;

    object-fit:
        contain;

    background:
        #FFFFFF;
}

.orbi-company-copy {
    display:
        grid;

    min-width:
        0;

    gap:
        2px;

    flex:
        1;
}

.orbi-company-copy strong {
    overflow:
        hidden;

    color:
        #14161F;

    font-family:
        "Manrope",
        ui-sans-serif,
        system-ui,
        sans-serif;

    font-size:
        13px;

    font-weight:
        750;

    text-overflow:
        ellipsis;

    white-space:
        nowrap;
}

.orbi-company-copy span {
    color:
        #7C5CFF;

    font-size:
        11px;

    font-weight:
        600;
}

.orbi-company-chevron {
    width:
        18px;

    height:
        18px;

    color:
        #8D91AA;
}

/* ---------- actual Flux active item ---------- */

.orbi-sidebar [data-current="true"],
.orbi-sidebar [aria-current="page"] {
    background:
        linear-gradient(
            135deg,
            #4F63FF 0%,
            #7C5CFF 62%,
            #9C5BF3 100%
        ) !important;

    color:
        #FFFFFF !important;

    border-radius:
        10px !important;

    box-shadow:
        0 8px 18px rgba(79, 99, 255, .24) !important;
}

.orbi-sidebar [data-current="true"] *,
.orbi-sidebar [aria-current="page"] * {
    color:
        #FFFFFF !important;
}

/* ---------- desktop topbar ---------- */

.orbi-desktop-topbar {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    min-height:
        64px;

    margin:
        -24px -32px 24px;

    padding:
        0 28px;

    border-bottom:
        1px solid #E8E9F2;

    background:
        #FFFFFF;
}

.orbi-topbar-breadcrumb {
    display:
        flex;

    align-items:
        center;

    gap:
        8px;

    white-space:
        nowrap;
}

.orbi-topbar-breadcrumb strong {
    font-family:
        "Manrope",
        ui-sans-serif,
        system-ui,
        sans-serif;

    font-size:
        14px;

    font-weight:
        750;

    color:
        #14161F;
}

.orbi-topbar-breadcrumb span {
    font-size:
        13px;

    color:
        #A3A7BD;
}

.orbi-topbar-tools {
    display:
        flex;

    align-items:
        center;

    gap:
        14px;
}

.orbi-global-search {
    display:
        flex;

    align-items:
        center;

    width:
        min(330px, 26vw);

    height:
        38px;

    padding:
        0 14px;

    gap:
        9px;

    border:
        1px solid #E8E9F2;

    border-radius:
        11px;

    background:
        #F7F7FC;

    color:
        #A3A7BD;

    cursor:
        default;
}

.orbi-global-search svg {
    width:
        17px;

    height:
        17px;
}

.orbi-global-search span {
    overflow:
        hidden;

    font-size:
        12px;

    text-overflow:
        ellipsis;

    white-space:
        nowrap;
}

.orbi-notification-icon {
    position: relative;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 36px;
    min-width: 36px;
    height: 36px;
    padding: 0 !important;
    border-radius: 10px !important;
    color: #4F536C !important;
}

.orbi-notification-icon:hover {
    background: #F7F7FC !important;
    color: #34384F !important;
}

.orbi-notification-icon svg {
    width: 20px;
    height: 20px;
}

.orbi-notification-badge {
    position: absolute;
    top: -3px;
    right: -5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border: 2px solid #FFFFFF;
    border-radius: 999px;
    background: #F05252;
    color: #FFFFFF;
    font-size: 9px;
    font-weight: 800;
    line-height: 1;
    box-sizing: border-box;
}

.orbi-notification-menu {
    width: min(390px, calc(100vw - 24px));
    max-height: min(560px, calc(100vh - 100px));
    overflow: hidden;
}

.orbi-notification-menu-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 14px 12px;
    border-bottom: 1px solid #ECEEF5;
}

.orbi-notification-menu-head > div {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.orbi-notification-menu-head strong {
    color: #25293B;
    font-size: 14px;
    font-weight: 750;
}

.orbi-notification-menu-head small {
    color: #8A90A5;
    font-size: 11px;
}

.orbi-notification-read-all {
    border: 0;
    background: transparent;
    color: #5267EE;
    cursor: pointer;
    font-size: 11px;
    font-weight: 700;
}

.orbi-notification-read-all:hover {
    text-decoration: underline;
}

.orbi-notification-list {
    max-height: 390px;
    overflow-y: auto;
}

.orbi-notification-list form {
    margin: 0;
}

.orbi-notification-item {
    display: flex;
    width: 100%;
    gap: 11px;
    padding: 13px 14px;
    border: 0;
    border-bottom: 1px solid #F0F1F6;
    background: #FFFFFF;
    text-align: left;
    cursor: pointer;
    transition: background .15s ease;
}

.orbi-notification-item:hover {
    background: #F8F9FD;
}

.orbi-notification-item.is-unread {
    background: #F5F6FF;
}

.orbi-notification-item.is-unread:hover {
    background: #EFF1FF;
}

.orbi-notification-copy {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    gap: 3px;
}

.orbi-notification-copy strong {
    overflow: hidden;
    color: #292D41;
    font-size: 12px;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.orbi-notification-copy > span {
    display: -webkit-box;
    overflow: hidden;
    color: #676D83;
    font-size: 11px;
    line-height: 1.45;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.orbi-notification-copy small {
    margin-top: 2px;
    color: #A0A5B7;
    font-size: 10px;
}

.orbi-notification-priority {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-top: 5px;
    border-radius: 999px;
    background: #A7ADBE;
}

.orbi-notification-priority.is-normal {
    background: #9BA2B5;
}

.orbi-notification-priority.is-attention {
    background: #E7A833;
}

.orbi-notification-priority.is-important {
    background: #5C72F2;
}

.orbi-notification-priority.is-critical {
    background: #E25151;
}

.orbi-notification-empty {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 30px 20px;
    text-align: center;
}

.orbi-notification-empty strong {
    color: #34384A;
    font-size: 12px;
}

.orbi-notification-empty span {
    color: #969CAF;
    font-size: 11px;
    line-height: 1.5;
}

.orbi-notification-view-all {
    display: block;
    padding: 12px 14px;
    color: #5267EE;
    font-size: 11px;
    font-weight: 750;
    text-align: center;
    text-decoration: none;
}

.orbi-notification-view-all:hover {
    background: #F8F9FD;
}
.orbi-topbar-divider {
    width:
        1px;

    height:
        30px;

    background:
        #E8E9F2;
}

.orbi-topbar-user {
    display:
        flex;

    align-items:
        center;

    min-width:
        145px;

    gap:
        9px;
}

.orbi-user-avatar {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    width:
        34px;

    height:
        34px;

    flex:
        0 0 34px;

    border-radius:
        999px;

    background:
        linear-gradient(
            135deg,
            #4F63FF,
            #9C5BF3
        );

    color:
        #FFFFFF;

    font-family:
        "Manrope",
        ui-sans-serif,
        system-ui,
        sans-serif;

    font-weight:
        800;
}

.orbi-topbar-user > div {
    display:
        grid;

    gap:
        1px;
}

.orbi-topbar-user strong {
    max-width:
        140px;

    overflow:
        hidden;

    color:
        #14161F;

    font-size:
        12px;

    font-weight:
        700;

    text-overflow:
        ellipsis;

    white-space:
        nowrap;
}

.orbi-topbar-user span:not(.orbi-user-avatar) {
    color:
        #A3A7BD;

    font-size:
        10px;
}

/* ---------- home greeting ---------- */

.orbi-welcome-hero {
    display:
        grid;

    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(420px, .85fr);

    align-items:
        center;

    min-height:
        205px;

    padding:
        28px 32px;

    gap:
        28px;

    overflow:
        hidden;

    border-radius:
        16px;

    background:
        linear-gradient(
            112deg,
            #4F63FF 0%,
            #6F5EFF 45%,
            #9C5BF3 100%
        );

    color:
        #FFFFFF;
}

.orbi-welcome-copy {
    min-width:
        0;
}

.orbi-welcome-pill {
    display:
        inline-flex;

    align-items:
        center;

    min-height:
        28px;

    padding:
        0 13px;

    border:
        1px solid rgba(255,255,255,.35);

    border-radius:
        999px;

    background:
        rgba(255,255,255,.12);

    color:
        #FFFFFF;

    font-size:
        11px;

    font-weight:
        700;

    letter-spacing:
        .02em;
}

.orbi-welcome-copy h1 {
    margin:
        18px 0 0;

    color:
        #FFFFFF !important;

    font-family:
        "Manrope",
        ui-sans-serif,
        system-ui,
        sans-serif !important;

    font-size:
        clamp(28px, 2.5vw, 38px);

    font-weight:
        800;

    line-height:
        1.1;
}

.orbi-welcome-copy p {
    max-width:
        620px;

    margin:
        10px 0 0;

    color:
        rgba(255,255,255,.88) !important;

    font-size:
        15px;

    line-height:
        1.55;
}

.orbi-welcome-shortcuts {
    display:
        grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap:
        12px;
}

.orbi-welcome-shortcuts a {
    display:
        grid;

    min-height:
        82px;

    padding:
        14px 16px;

    gap:
        3px;

    border:
        1px solid rgba(255,255,255,.28);

    border-radius:
        14px;

    background:
        rgba(255,255,255,.12);

    color:
        #FFFFFF !important;

    text-decoration:
        none;

    backdrop-filter:
        blur(6px);
}

.orbi-welcome-shortcuts a:hover {
    background:
        rgba(255,255,255,.18);

    transform:
        translateY(-1px);
}

.orbi-welcome-shortcuts span {
    color:
        rgba(255,255,255,.78);

    font-size:
        10px;

    font-weight:
        700;

    letter-spacing:
        .04em;
}

.orbi-welcome-shortcuts strong {
    color:
        #FFFFFF;

    font-family:
        "Manrope",
        ui-sans-serif,
        system-ui,
        sans-serif;

    font-size:
        16px;

    font-weight:
        800;
}

.orbi-welcome-shortcuts small {
    color:
        rgba(255,255,255,.75);

    font-size:
        10px;
}

@media (max-width: 1200px) {
    .orbi-welcome-hero {
        grid-template-columns:
            1fr;
    }

    .orbi-welcome-shortcuts {
        grid-template-columns:
            repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 1023px) {
    .orbi-desktop-topbar {
        display:
            none;
    }

    .orbi-welcome-hero {
        padding:
            24px;
    }

    .orbi-welcome-shortcuts {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .orbi-welcome-shortcuts {
        grid-template-columns:
            1fr;
    }
}


/* =========================================================
   ORBI REDESIGN 04 R1
   Compact shell / hero parity refinement
========================================================= */

/* ---------- prevent page horizontal overflow ---------- */

html,
body,
.orbi-app-body {
    max-width:
        100%;

    overflow-x:
        hidden;
}

.orbi-main {
    min-width:
        0 !important;

    overflow-x:
        hidden;
}

/* ---------- sidebar header must be vertical ---------- */

.orbi-sidebar-head-stack {
    display:
        grid;

    width:
        100%;

    min-width:
        0;

    gap:
        10px;
}

.orbi-sidebar-brand-row {
    width:
        100%;

    min-width:
        0;

    box-sizing:
        border-box;
}

.orbi-company-selector {
    width:
        100%;

    min-width:
        0;

    margin-top:
        0;
}

/*
 * Preserve current company logo exactly as implemented.
 * Only normalize its visual footprint.
 */
.orbi-company-avatar {
    width:
        38px;

    height:
        38px;

    flex-basis:
        38px;
}

.orbi-company-avatar img {
    max-width:
        100%;

    max-height:
        100%;
}

/* ---------- topbar alignment ---------- */

.orbi-desktop-topbar {
    width:
        auto;

    min-width:
        0;

    min-height:
        64px;

    margin:
        -24px -32px 22px;

    padding:
        0 32px;

    box-sizing:
        border-box;

    overflow:
        hidden;
}

.orbi-topbar-breadcrumb,
.orbi-topbar-tools {
    min-width:
        0;
}

.orbi-topbar-tools {
    justify-content:
        flex-end;

    flex:
        1;
}

.orbi-global-search {
    width:
        300px;

    max-width:
        32vw;

    flex:
        0 1 300px;
}

.orbi-topbar-user {
    min-width:
        128px;

    max-width:
        185px;

    flex:
        0 1 auto;
}

/* ---------- compact home hero ---------- */

.orbi-welcome-hero {
    grid-template-columns:
        minmax(300px, .95fr)
        minmax(570px, 1.25fr);

    min-height:
        176px;

    padding:
        24px 30px;

    gap:
        26px;

    box-sizing:
        border-box;
}

.orbi-welcome-pill {
    min-height:
        24px;

    padding:
        0 11px;

    font-size:
        10px;
}

.orbi-welcome-copy h1 {
    margin-top:
        14px;

    font-size:
        31px !important;

    line-height:
        1.12 !important;

    letter-spacing:
        -0.025em;
}

.orbi-welcome-copy p {
    max-width:
        560px;

    margin-top:
        8px;

    font-size:
        13px;

    line-height:
        1.5;
}

/* Four compact cards like approved HTML */

.orbi-welcome-shortcuts {
    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap:
        10px;
}

.orbi-welcome-shortcuts a {
    align-content:
        center;

    min-width:
        0;

    min-height:
        94px;

    padding:
        13px 14px;

    border-radius:
        13px;
}

.orbi-welcome-shortcuts span {
    overflow:
        hidden;

    font-size:
        9px;

    line-height:
        1.2;

    text-overflow:
        ellipsis;

    white-space:
        nowrap;
}

.orbi-welcome-shortcuts strong {
    overflow:
        hidden;

    font-size:
        15px;

    line-height:
        1.25;

    text-overflow:
        ellipsis;

    white-space:
        nowrap;
}

.orbi-welcome-shortcuts small {
    margin-top:
        2px;

    font-size:
        9px;
}

/* ---------- module area remains as approved ---------- */

.orbi-home > div:nth-child(2) {
    margin-top:
        0;
}

/* ---------- responsive ---------- */

@media (max-width: 1350px) {

    .orbi-welcome-hero {
        grid-template-columns:
            minmax(280px, .9fr)
            minmax(500px, 1.1fr);
    }

    .orbi-welcome-shortcuts a {
        padding:
            11px;
    }

    .orbi-welcome-shortcuts strong {
        font-size:
            13px;
    }
}

@media (max-width: 1120px) {

    .orbi-welcome-hero {
        grid-template-columns:
            1fr;
    }

    .orbi-welcome-shortcuts {
        grid-template-columns:
            repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 1023px) {

    .orbi-welcome-shortcuts {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {

    .orbi-welcome-copy h1 {
        font-size:
            27px !important;
    }

    .orbi-welcome-shortcuts {
        grid-template-columns:
            1fr;
    }
}


/* =========================================================
   ORBI REDESIGN 04 R2
   Client branding restore + shell alignment + nav response
========================================================= */

/* ---------------------------------------------------------
   Sidebar
   Keep original real tenant branding.
--------------------------------------------------------- */

.orbi-sidebar-head-stack,
.orbi-sidebar-brand-row,
.orbi-company-selector {
    /* Old R04 structures no longer used after header restore. */
}

/*
 * Never paint an element just because data-current exists.
 * Only actual true/current navigation is active.
 */
.orbi-sidebar [data-current="false"] {
    background:
        transparent !important;

    box-shadow:
        none !important;
}

.orbi-sidebar [data-current="false"] * {
    color:
        inherit !important;
}

/*
 * Active item is immediate and stable.
 * Remove the white -> purple animation.
 */
.orbi-sidebar nav a,
.orbi-sidebar [role="navigation"] a,
.orbi-sidebar [data-flux-sidebar-item] {
    transition:
        none !important;
}

.orbi-sidebar [data-current="true"],
.orbi-sidebar [aria-current="page"] {
    background:
        linear-gradient(
            135deg,
            #4F63FF 0%,
            #7C5CFF 62%,
            #9C5BF3 100%
        ) !important;

    color:
        #FFFFFF !important;

    border-radius:
        10px !important;

    box-shadow:
        0 7px 16px rgba(79, 99, 255, .20) !important;
}

.orbi-sidebar [data-current="true"] *,
.orbi-sidebar [aria-current="page"] * {
    color:
        #FFFFFF !important;
}

/* ---------------------------------------------------------
   Main shell / topbar
--------------------------------------------------------- */

/*
 * R04 used a negative top margin.
 * Flux already positions main correctly, so that caused
 * the topbar to appear mounted/cut at the viewport edge.
 */
.orbi-main {
    padding-top:
        0 !important;
}

.orbi-desktop-topbar {
    position:
        relative;

    z-index:
        5;

    width:
        auto;

    min-height:
        64px;

    margin:
        0 -32px 24px !important;

    padding:
        0 32px !important;

    overflow:
        visible;

    border-top:
        0;

    border-right:
        0;

    border-left:
        0;

    border-bottom:
        1px solid #E8E9F2;

    border-radius:
        0;

    background:
        #FFFFFF;

    box-shadow:
        none;
}

/* Give the topbar content enough breathing room. */

.orbi-topbar-breadcrumb {
    min-height:
        64px;
}

.orbi-topbar-tools {
    min-height:
        64px;
}

/* ---------------------------------------------------------
   Hero vertical spacing after topbar
--------------------------------------------------------- */

.orbi-home {
    padding-top:
        0;
}

.orbi-welcome-hero {
    margin-top:
        0;
}

/* ---------------------------------------------------------
   Small screens
--------------------------------------------------------- */

@media (max-width: 1023px) {

    .orbi-main {
        padding-top:
            20px !important;
    }

    .orbi-desktop-topbar {
        display:
            none !important;
    }
}


/* =========================================================
   ORBI REDESIGN 04 R3 EXACT
   Functional top user + Orbi footer + stable active nav
========================================================= */

/* ---------------------------------------------------------
   Functional user menu in topbar
--------------------------------------------------------- */

.orbi-topbar-functional-user {
    display:
        flex;

    align-items:
        center;

    justify-content:
        flex-end;

    min-width:
        160px;

    max-width:
        235px;
}

.orbi-topbar-functional-user > * {
    margin:
        0 !important;
}

/*
 * Desktop user component previously lived in sidebar.
 * Keep its dropdown behavior, but visually integrate it
 * with the horizontal topbar.
 */
.orbi-topbar-functional-user button {
    max-width:
        230px;

    min-height:
        38px;

    border:
        0 !important;

    background:
        transparent !important;

    box-shadow:
        none !important;
}

/* ---------------------------------------------------------
   Orbi identity at bottom of sidebar
--------------------------------------------------------- */

.orbi-sidebar-orbi-logo {
    align-items:
        center;

    justify-content:
        center;

    width:
        100%;

    min-height:
        66px;

    padding:
        8px 14px;

    border:
        1px solid #E8E9F2;

    border-radius:
        14px;

    background:
        #FFFFFF;

    box-sizing:
        border-box;

    text-decoration:
        none;

    transition:
        background 120ms ease,
        border-color 120ms ease;
}

.orbi-sidebar-orbi-logo:hover {
    border-color:
        #DADDEC;

    background:
        #FAFBFF;
}

.orbi-sidebar-orbi-logo img {
    display:
        block;

    width:
        125px;

    max-width:
        100%;

    max-height:
        48px;

    object-fit:
        contain;
}

/* ---------------------------------------------------------
   Navigation
--------------------------------------------------------- */

/*
 * Do not depend on Flux internal data-current serialization.
 * Blade assigns orbi-nav-active using the SAME condition that
 * already determines :current.
 */

.orbi-sidebar .orbi-nav-active,
.orbi-sidebar .orbi-nav-pending {
    background:
        linear-gradient(
            135deg,
            #4F63FF 0%,
            #7C5CFF 62%,
            #9C5BF3 100%
        ) !important;

    border-color:
        transparent !important;

    border-radius:
        10px !important;

    color:
        #FFFFFF !important;

    box-shadow:
        0 7px 17px rgba(79,99,255,.21) !important;
}

.orbi-sidebar .orbi-nav-active *,
.orbi-sidebar .orbi-nav-pending * {
    color:
        #FFFFFF !important;
}

/*
 * Immediate click feedback.
 * No white flash before Livewire navigation completes.
 */

.orbi-sidebar .orbi-nav-pending {
    transition:
        none !important;
}

/*
 * Keep inactive items clean.
 */

.orbi-sidebar
    [data-current="false"]:not(.orbi-nav-pending):not(.orbi-nav-active) {
    background:
        transparent !important;

    box-shadow:
        none !important;
}

/* ---------------------------------------------------------
   Mobile
--------------------------------------------------------- */

@media (max-width: 1023px) {

    .orbi-sidebar-orbi-logo {
        display:
            none !important;
    }
}


/* =========================================================
   ORBI SIDEBAR ANCHOR FINAL
   Desktop:
   - sidebar fixed to viewport
   - nav scrolls independently
   - Orbi pinned at bottom
   - workspace owns normal page scroll
========================================================= */

@media (min-width: 1024px) {

    body.orbi-app-body {
        display:
            block !important;

        width:
            100% !important;

        min-height:
            100vh !important;

        margin:
            0 !important;

        overflow-x:
            hidden !important;
    }

    /*
     * LEFT SIDEBAR
     */
    body.orbi-app-body
    > .orbi-sidebar {
        position:
            fixed !important;

        top:
            0 !important;

        left:
            0 !important;

        bottom:
            0 !important;

        z-index:
            40 !important;

        display:
            flex !important;

        flex-direction:
            column !important;

        width:
            18rem !important;

        min-width:
            18rem !important;

        max-width:
            18rem !important;

        height:
            100vh !important;

        height:
            100dvh !important;

        min-height:
            0 !important;

        margin:
            0 !important;

        overflow:
            hidden !important;

        background:
            #ffffff !important;
    }

    /*
     * Company / Antares area stays at top.
     */
    body.orbi-app-body
    > .orbi-sidebar
    > header,
    body.orbi-app-body
    > .orbi-sidebar
    > [data-flux-sidebar-header],
    .orbi-sidebar-company-logo {
        flex:
            0 0 auto !important;
    }

    /*
     * ONLY this middle section scrolls.
     */
    body.orbi-app-body
    > .orbi-sidebar
    > .orbi-sidebar-nav {
        flex:
            1 1 0 !important;

        min-height:
            0 !important;

        max-height:
            none !important;

        overflow-x:
            hidden !important;

        overflow-y:
            auto !important;

        overscroll-behavior:
            contain !important;

        padding-bottom:
            12px !important;

        scrollbar-width:
            thin !important;

        scrollbar-color:
            #c9cdd8 transparent !important;
    }

    body.orbi-app-body
    > .orbi-sidebar
    > .orbi-sidebar-nav::-webkit-scrollbar {
        width:
            5px !important;
    }

    body.orbi-app-body
    > .orbi-sidebar
    > .orbi-sidebar-nav::-webkit-scrollbar-thumb {
        background:
            #c9cdd8 !important;

        border-radius:
            999px !important;
    }

    body.orbi-app-body
    > .orbi-sidebar
    > .orbi-sidebar-nav::-webkit-scrollbar-track {
        background:
            transparent !important;
    }

    /*
     * ORBI FOOTER
     *
     * Never scrolls with menu or page.
     */
    body.orbi-app-body
    > .orbi-sidebar
    > .orbi-sidebar-orbi-logo {
        position:
            static !important;

        flex:
            0 0 auto !important;

        display:
            flex !important;

        align-items:
            center !important;

        justify-content:
            center !important;

        width:
            calc(100% - 28px) !important;

        min-height:
            68px !important;

        margin:
            auto 14px 14px !important;

        padding:
            9px 14px !important;

        border:
            1px solid #e7e9f1 !important;

        border-radius:
            14px !important;

        background:
            #ffffff !important;

        box-shadow:
            0 6px 20px rgba(20,22,31,.06) !important;

        box-sizing:
            border-box !important;
    }

    body.orbi-app-body
    > .orbi-sidebar
    > .orbi-sidebar-orbi-logo img {
        display:
            block !important;

        width:
            128px !important;

        max-width:
            100% !important;

        max-height:
            46px !important;

        object-fit:
            contain !important;
    }

    /*
     * RIGHT APPLICATION WORKSPACE
     *
     * This is now the normal document scroll.
     */
    body.orbi-app-body
    > .orbi-workspace {
        display:
            block !important;

        width:
            calc(100% - 18rem) !important;

        min-width:
            0 !important;

        max-width:
            none !important;

        min-height:
            100vh !important;

        margin:
            0 0 0 18rem !important;

        padding:
            0 !important;

        transform:
            none !important;
    }

    .orbi-workspace
    > .orbi-desktop-topbar,
    .orbi-workspace
    > .orbi-main {
        width:
            100% !important;

        min-width:
            0 !important;

        max-width:
            none !important;

        margin:
            0 !important;

        margin-inline:
            0 !important;

        transform:
            none !important;
    }
}


/*
 * Mobile remains native.
 */
@media (max-width: 1023px) {

    body.orbi-app-body {
        display:
            block !important;
    }

    .orbi-workspace {
        width:
            100% !important;

        margin:
            0 !important;
    }

    .orbi-sidebar-orbi-logo {
        display:
            none !important;
    }
}


/* =========================================================
   ORBI DESIGN SYSTEM V1
   Shared contract for all current and future modules.
   Based on the approved Orbi visual direction.
========================================================= */


/* ---------------------------------------------------------
   PAGE TYPOGRAPHY
--------------------------------------------------------- */

.orbi-page-title {
    margin:
        0 !important;

    font-family:
        "Manrope",
        "Public Sans",
        sans-serif !important;

    font-size:
        clamp(1.6rem, 2vw, 2rem) !important;

    line-height:
        1.15 !important;

    font-weight:
        800 !important;

    letter-spacing:
        -0.035em !important;

    color:
        var(--orbi-text) !important;
}

.orbi-page-subtitle {
    margin-top:
        6px !important;

    font-size:
        .95rem !important;

    line-height:
        1.55 !important;

    color:
        var(--orbi-text-secondary) !important;
}


/* ---------------------------------------------------------
   CARDS / SURFACES
--------------------------------------------------------- */

.orbi-card {
    border:
        1px solid var(--orbi-border) !important;

    border-radius:
        var(--orbi-radius-card) !important;

    background:
        var(--orbi-surface) !important;

    box-shadow:
        0 4px 18px rgba(20,22,31,.035) !important;
}

.orbi-card-title {
    font-family:
        "Manrope",
        "Public Sans",
        sans-serif !important;

    font-size:
        1rem !important;

    line-height:
        1.3 !important;

    font-weight:
        750 !important;

    color:
        var(--orbi-text) !important;
}

.orbi-stat-card {
    border:
        1px solid var(--orbi-border) !important;

    border-radius:
        var(--orbi-radius-card) !important;

    background:
        var(--orbi-surface) !important;

    box-shadow:
        0 3px 16px rgba(20,22,31,.03) !important;

    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        transform .18s ease !important;
}

.orbi-stat-card:hover {
    border-color:
        rgba(79,99,255,.28) !important;

    box-shadow:
        0 8px 24px rgba(79,99,255,.08) !important;

    transform:
        translateY(-1px) !important;
}


/* ---------------------------------------------------------
   BUTTONS
--------------------------------------------------------- */

.orbi-btn-primary,
.orbi-btn-secondary,
.orbi-btn-danger {
    display:
        inline-flex !important;

    min-height:
        42px !important;

    align-items:
        center !important;

    justify-content:
        center !important;

    gap:
        8px !important;

    border-radius:
        var(--orbi-radius-control) !important;

    padding:
        0 18px !important;

    font-size:
        .875rem !important;

    line-height:
        1 !important;

    font-weight:
        700 !important;

    text-decoration:
        none !important;

    cursor:
        pointer !important;

    transition:
        transform .16s ease,
        box-shadow .16s ease,
        border-color .16s ease,
        background .16s ease !important;
}

.orbi-btn-primary {
    border:
        0 !important;

    background:
        var(--orbi-brand-gradient) !important;

    color:
        #FFFFFF !important;

    box-shadow:
        0 7px 18px rgba(79,99,255,.18) !important;
}

.orbi-btn-primary:hover {
    color:
        #FFFFFF !important;

    box-shadow:
        0 9px 22px rgba(79,99,255,.24) !important;

    transform:
        translateY(-1px) !important;
}

.orbi-btn-secondary {
    border:
        1px solid var(--orbi-border) !important;

    background:
        #FFFFFF !important;

    color:
        var(--orbi-text-secondary) !important;

    box-shadow:
        0 2px 8px rgba(20,22,31,.025) !important;
}

.orbi-btn-secondary:hover {
    border-color:
        rgba(79,99,255,.28) !important;

    background:
        var(--orbi-hover) !important;

    color:
        var(--orbi-primary) !important;
}

.orbi-btn-danger {
    border:
        1px solid #F2CACA !important;

    background:
        #FFFFFF !important;

    color:
        var(--orbi-danger) !important;
}

.orbi-btn-danger:hover {
    background:
        var(--orbi-danger-bg) !important;
}


/* ---------------------------------------------------------
   FORM CONTROLS
--------------------------------------------------------- */

.orbi-control {
    width:
        100% !important;

    min-height:
        44px !important;

    border:
        1px solid #DFE1EE !important;

    border-radius:
        var(--orbi-radius-control) !important;

    background:
        #FFFFFF !important;

    color:
        var(--orbi-text) !important;

    font-family:
        "Public Sans",
        sans-serif !important;

    font-size:
        .875rem !important;

    transition:
        border-color .16s ease,
        box-shadow .16s ease,
        background .16s ease !important;
}

textarea.orbi-control {
    min-height:
        104px !important;
}

.orbi-control::placeholder {
    color:
        var(--orbi-text-muted) !important;
}

.orbi-control:hover {
    border-color:
        #CBCDDF !important;
}

.orbi-control:focus {
    outline:
        none !important;

    border-color:
        var(--orbi-primary) !important;

    box-shadow:
        0 0 0 3px rgba(79,99,255,.12) !important;
}


/* ---------------------------------------------------------
   TABLES
--------------------------------------------------------- */

.orbi-table {
    width:
        100% !important;

    border-collapse:
        separate !important;

    border-spacing:
        0 !important;

    font-size:
        .875rem !important;

    color:
        var(--orbi-text-secondary) !important;
}

.orbi-table thead {
    background:
        var(--orbi-table-head) !important;
}

.orbi-table thead th {
    padding:
        13px 16px !important;

    font-size:
        .69rem !important;

    line-height:
        1.35 !important;

    font-weight:
        700 !important;

    letter-spacing:
        .055em !important;

    text-transform:
        uppercase !important;

    color:
        var(--orbi-text-muted) !important;

    border-bottom:
        1px solid var(--orbi-divider) !important;
}

.orbi-table tbody td {
    padding:
        15px 16px !important;

    vertical-align:
        middle !important;

    border-bottom:
        1px solid var(--orbi-divider) !important;
}

.orbi-table tbody tr {
    transition:
        background .14s ease !important;
}

.orbi-table tbody tr:hover {
    background:
        #FAFBFF !important;
}

.orbi-table tbody tr:last-child td {
    border-bottom:
        0 !important;
}


/* ---------------------------------------------------------
   STATUS / BADGES
--------------------------------------------------------- */

.orbi-badge {
    display:
        inline-flex !important;

    align-items:
        center !important;

    min-height:
        26px !important;

    border-radius:
        999px !important;

    padding:
        0 10px !important;

    font-size:
        .69rem !important;

    font-weight:
        750 !important;

    letter-spacing:
        .02em !important;
}

.orbi-badge-success {
    background:
        var(--orbi-success-bg) !important;

    color:
        var(--orbi-success) !important;
}

.orbi-badge-warning {
    background:
        var(--orbi-warning-bg) !important;

    color:
        var(--orbi-warning) !important;
}

.orbi-badge-danger {
    background:
        var(--orbi-danger-bg) !important;

    color:
        var(--orbi-danger) !important;
}

.orbi-badge-neutral {
    background:
        var(--orbi-neutral-bg) !important;

    color:
        var(--orbi-neutral) !important;
}


/* ---------------------------------------------------------
   EMPTY STATES
--------------------------------------------------------- */

.orbi-empty-state {
    display:
        flex !important;

    min-height:
        150px !important;

    align-items:
        center !important;

    justify-content:
        center !important;

    padding:
        28px !important;

    text-align:
        center !important;

    color:
        var(--orbi-text-muted) !important;
}


/* ---------------------------------------------------------
   RESPONSIVE
--------------------------------------------------------- */

@media (max-width: 767px) {

    .orbi-page-title {
        font-size:
            1.55rem !important;
    }

    .orbi-btn-primary,
    .orbi-btn-secondary,
    .orbi-btn-danger {
        min-height:
            44px !important;
    }
}


/* =========================================================
   ORBI DASHBOARD PARITY V1
   Tenant dashboard aligned with approved visual reference.
========================================================= */

.orbi-dashboard {
    display:
        flex;

    flex-direction:
        column;

    gap:
        18px;
}

.orbi-dashboard-heading {
    display:
        flex;

    align-items:
        flex-end;

    justify-content:
        space-between;

    gap:
        24px;
}

.orbi-dashboard-eyebrow {
    font-size:
        .72rem;

    font-weight:
        800;

    letter-spacing:
        .09em;

    text-transform:
        uppercase;

    color:
        var(--orbi-primary);
}

.orbi-dashboard-company-code {
    flex:
        0 0 auto;

    font-size:
        .82rem;

    color:
        var(--orbi-text-muted);
}

.orbi-dashboard-company-code span {
    margin:
        0 4px;
}

.orbi-dashboard-kpi-grid {
    display:
        grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap:
        16px;
}

.orbi-dashboard-kpi {
    position:
        relative;

    display:
        flex;

    min-width:
        0;

    min-height:
        118px;

    align-items:
        center;

    gap:
        16px;

    padding:
        19px 20px;

    border:
        1px solid var(--orbi-border);

    border-radius:
        var(--orbi-radius-card);

    background:
        #FFFFFF;

    box-shadow:
        0 3px 16px rgba(20,22,31,.03);

    text-decoration:
        none !important;

    transition:
        transform .16s ease,
        border-color .16s ease,
        box-shadow .16s ease;
}

.orbi-dashboard-kpi:hover {
    transform:
        translateY(-1px);

    border-color:
        rgba(79,99,255,.26);

    box-shadow:
        0 9px 24px rgba(79,99,255,.075);
}

.orbi-dashboard-kpi-icon {
    display:
        flex;

    flex:
        0 0 48px;

    width:
        48px;

    height:
        48px;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        14px;
}

.orbi-dashboard-kpi-icon svg {
    width:
        23px;

    height:
        23px;
}

.orbi-dashboard-kpi-icon--violet {
    background:
        #F5EAFE;

    color:
        #C026D3;
}

.orbi-dashboard-kpi-icon--blue {
    background:
        #EDF2FF;

    color:
        #4F63FF;
}

.orbi-dashboard-kpi-icon--green {
    background:
        #E8F9EE;

    color:
        #1A9A4A;
}

.orbi-dashboard-kpi-icon--orange {
    background:
        #FFF2E3;

    color:
        #D47A18;
}

.orbi-dashboard-kpi-icon--amber {
    background:
        #FFF4DD;

    color:
        #C78516;
}

.orbi-dashboard-kpi-icon--slate {
    background:
        #EEF0F8;

    color:
        #62677F;
}

.orbi-dashboard-kpi-copy {
    min-width:
        0;
}

.orbi-dashboard-kpi-label {
    font-size:
        .84rem;

    font-weight:
        650;

    color:
        var(--orbi-text-secondary);
}

.orbi-dashboard-kpi-value {
    margin-top:
        5px;

    font-family:
        "Manrope",
        "Public Sans",
        sans-serif;

    font-size:
        1.8rem;

    line-height:
        1;

    font-weight:
        800;

    letter-spacing:
        -.04em;

    color:
        var(--orbi-text);
}

.orbi-dashboard-kpi-arrow {
    margin-left:
        auto;

    font-size:
        1.2rem;

    font-weight:
        700;

    color:
        #B5B9CC;

    transition:
        color .16s ease,
        transform .16s ease;
}

.orbi-dashboard-kpi:hover
.orbi-dashboard-kpi-arrow {
    color:
        var(--orbi-primary);

    transform:
        translateX(2px);
}

.orbi-dashboard-lower-grid {
    display:
        grid;

    grid-template-columns:
        minmax(0, 1.65fr)
        minmax(290px, 1fr);

    gap:
        18px;

    align-items:
        start;
}

.orbi-dashboard-section-head {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        20px;

    padding:
        19px 20px;

    border-bottom:
        1px solid var(--orbi-divider);
}

.orbi-dashboard-link {
    flex:
        0 0 auto;

    font-size:
        .82rem;

    font-weight:
        700;

    color:
        var(--orbi-primary) !important;

    text-decoration:
        none !important;
}

.orbi-dashboard-link:hover {
    color:
        var(--orbi-violet) !important;
}

.orbi-dashboard-client-list {
    display:
        flex;

    flex-direction:
        column;
}

.orbi-dashboard-client-row {
    display:
        flex;

    align-items:
        center;

    gap:
        13px;

    min-height:
        68px;

    padding:
        13px 20px;

    border-bottom:
        1px solid var(--orbi-divider);
}

.orbi-dashboard-client-row:last-child {
    border-bottom:
        0;
}

.orbi-dashboard-client-avatar {
    display:
        flex;

    flex:
        0 0 38px;

    width:
        38px;

    height:
        38px;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        12px;

    background:
        #EEF0FB;

    font-size:
        .8rem;

    font-weight:
        800;

    color:
        var(--orbi-primary);
}

.orbi-dashboard-card-footer {
    padding:
        14px 20px;

    border-top:
        1px solid var(--orbi-divider);
}

.orbi-dashboard-notice {
    display:
        flex;

    align-items:
        flex-start;

    gap:
        12px;

    padding:
        14px 16px;

    border:
        1px solid #E5E7F3;

    border-radius:
        14px;

    background:
        rgba(255,255,255,.62);

    color:
        var(--orbi-text-secondary);
}

.orbi-dashboard-notice-icon {
    display:
        flex;

    flex:
        0 0 28px;

    width:
        28px;

    height:
        28px;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        9px;

    background:
        #EEF0FB;

    font-size:
        .78rem;

    font-weight:
        800;

    color:
        var(--orbi-primary);
}

.orbi-dashboard-notice strong {
    display:
        block;

    font-size:
        .82rem;

    color:
        var(--orbi-text);
}

.orbi-dashboard-notice p {
    margin-top:
        3px;

    font-size:
        .78rem;

    line-height:
        1.5;

    color:
        var(--orbi-text-muted);
}

@media (max-width: 1199px) {

    .orbi-dashboard-kpi-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .orbi-dashboard-lower-grid {
        grid-template-columns:
            1fr;
    }
}

@media (max-width: 767px) {

    .orbi-dashboard-heading {
        align-items:
            flex-start;

        flex-direction:
            column;
    }

    .orbi-dashboard-kpi-grid {
        grid-template-columns:
            1fr;
    }

    .orbi-dashboard-company-code {
        display:
            none;
    }
}


/* ORBI-NOTIFICATION-BELL-R4
   Native Flux bell trigger + unread badge.
*/
.orbi-notification-icon {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 !important;
    border-radius: 11px !important;
    color: #4F536C !important;
}

.orbi-notification-icon svg {
    display: block !important;
    width: 21px !important;
    min-width: 21px !important;
    height: 21px !important;
    min-height: 21px !important;
    flex: 0 0 21px !important;
    color: currentColor !important;
}

.orbi-notification-icon:hover {
    background: #F7F7FC !important;
    color: #34384F !important;
}

.orbi-notification-icon.has-unread::after {
    content: attr(data-notification-count);
    position: absolute;
    top: -4px;
    right: -6px;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border: 2px solid #FFFFFF;
    border-radius: 999px;
    background: #F05252;
    color: #FFFFFF;
    box-sizing: border-box;
    font-size: 9px;
    font-weight: 800;
    line-height: 1;
    pointer-events: none;
}

/* =========================================================
   ORBI-DASHBOARD-VISUAL-REFINEMENT-02B
   Financial 4-up desktop grid + balanced recent activity.
   Scoped to Dashboard-only classes introduced by 02B.
   ========================================================= */

/*
 * Financial summary has exactly four metrics.
 * Keep all four in one row on desktop.
 */
.orbi-dashboard-financial-grid {
    display:
        grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap:
        16px;
}

.orbi-dashboard-financial-grid
.orbi-dashboard-kpi {
    min-width:
        0;

    min-height:
        118px;
}

.orbi-dashboard-financial-grid
.orbi-dashboard-kpi-value {
    white-space:
        nowrap;

    font-size:
        clamp(1.42rem, 1.72vw, 1.8rem);
}

/*
 * Recent activity needs a different proportion
 * from Pipeline + Operation.
 *
 * Quotes: 46%
 * Sales: 54%
 */
.orbi-dashboard-recent-grid {
    display:
        grid;

    grid-template-columns:
        minmax(0, .86fr)
        minmax(0, 1fr);

    gap:
        18px;

    align-items:
        start;
}

.orbi-dashboard-recent-grid
> .orbi-card {
    min-width:
        0;
}

/*
 * On desktop the sales table receives enough width
 * to keep transactional identifiers, dates, totals
 * and badges on one line.
 */
@media (min-width: 1200px) {

    .orbi-dashboard-recent-grid
    > .orbi-card:nth-child(2)
    .orbi-table {
        table-layout:
            fixed;
    }

    .orbi-dashboard-recent-grid
    > .orbi-card:nth-child(2)
    .orbi-table th,
    .orbi-dashboard-recent-grid
    > .orbi-card:nth-child(2)
    .orbi-table td {
        padding-left:
            11px !important;

        padding-right:
            11px !important;
    }

    .orbi-dashboard-recent-grid
    > .orbi-card:nth-child(2)
    .orbi-table th:nth-child(1),
    .orbi-dashboard-recent-grid
    > .orbi-card:nth-child(2)
    .orbi-table td:nth-child(1) {
        width:
            18%;

        white-space:
            nowrap;
    }

    .orbi-dashboard-recent-grid
    > .orbi-card:nth-child(2)
    .orbi-table th:nth-child(2),
    .orbi-dashboard-recent-grid
    > .orbi-card:nth-child(2)
    .orbi-table td:nth-child(2) {
        width:
            27%;
    }

    .orbi-dashboard-recent-grid
    > .orbi-card:nth-child(2)
    .orbi-table th:nth-child(3),
    .orbi-dashboard-recent-grid
    > .orbi-card:nth-child(2)
    .orbi-table td:nth-child(3) {
        width:
            18%;

        white-space:
            nowrap;
    }

    .orbi-dashboard-recent-grid
    > .orbi-card:nth-child(2)
    .orbi-table th:nth-child(4),
    .orbi-dashboard-recent-grid
    > .orbi-card:nth-child(2)
    .orbi-table td:nth-child(4) {
        width:
            20%;

        white-space:
            nowrap;
    }

    .orbi-dashboard-recent-grid
    > .orbi-card:nth-child(2)
    .orbi-table th:nth-child(5),
    .orbi-dashboard-recent-grid
    > .orbi-card:nth-child(2)
    .orbi-table td:nth-child(5) {
        width:
            17%;

        white-space:
            nowrap;
    }

    .orbi-dashboard-recent-grid
    > .orbi-card:nth-child(2)
    .orbi-badge {
        white-space:
            nowrap;
    }
}

/*
 * Keep the existing responsive behavior:
 * 2x2 financial grid and stacked recent cards
 * on medium screens.
 */
@media (max-width: 1199px) {

    .orbi-dashboard-financial-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .orbi-dashboard-recent-grid {
        grid-template-columns:
            1fr;
    }
}

/*
 * Mobile:
 * one financial card per row.
 */
@media (max-width: 767px) {

    .orbi-dashboard-financial-grid {
        grid-template-columns:
            1fr;
    }
}

/* =========================================================
   ORBI-DASHBOARD-FINANCIAL-CARDS-02D
   Four compact financial cards.
   CSS-only presentation refinement.
   ========================================================= */

.orbi-dashboard-financial-grid {
    display:
        grid !important;

    grid-template-columns:
        repeat(4, minmax(0, 1fr)) !important;

    gap:
        18px !important;

    padding:
        20px !important;
}

.orbi-dashboard-financial-grid
> .orbi-dashboard-kpi {
    display:
        flex !important;

    align-items:
        flex-start !important;

    min-width:
        0;

    min-height:
        142px;

    padding:
        22px !important;

    border:
        1px solid #e2e8f0;

    border-radius:
        18px !important;

    background:
        #ffffff;

    box-shadow:
        0 8px 24px rgba(15, 23, 42, .045);

    transition:
        transform .18s ease,
        box-shadow .18s ease;
}

.orbi-dashboard-financial-grid
> .orbi-dashboard-kpi:hover {
    transform:
        translateY(-2px);

    box-shadow:
        0 13px 30px rgba(15, 23, 42, .075);
}

/* Vendido */
.orbi-dashboard-financial-grid
> .orbi-dashboard-kpi:nth-child(1) {
    border-top:
        4px solid #7c3aed;

    background:
        linear-gradient(
            145deg,
            #f5f3ff 0%,
            #ffffff 72%
        );
}

/* Cobrado */
.orbi-dashboard-financial-grid
> .orbi-dashboard-kpi:nth-child(2) {
    border-top:
        4px solid #10b981;

    background:
        linear-gradient(
            145deg,
            #ecfdf5 0%,
            #ffffff 72%
        );
}

/* Por cobrar */
.orbi-dashboard-financial-grid
> .orbi-dashboard-kpi:nth-child(3) {
    border-top:
        4px solid #f59e0b;

    background:
        linear-gradient(
            145deg,
            #fffbeb 0%,
            #ffffff 72%
        );
}

/* Ticket promedio */
.orbi-dashboard-financial-grid
> .orbi-dashboard-kpi:nth-child(4) {
    border-top:
        4px solid #3b82f6;

    background:
        linear-gradient(
            145deg,
            #eff6ff 0%,
            #ffffff 72%
        );
}

.orbi-dashboard-financial-grid
.orbi-dashboard-kpi-copy {
    min-width:
        0;
}

.orbi-dashboard-financial-grid
.orbi-dashboard-kpi-label {
    margin-bottom:
        7px;

    color:
        #475569;

    font-size:
        .84rem;

    font-weight:
        700;
}

.orbi-dashboard-financial-grid
.orbi-dashboard-kpi-value {
    color:
        #0f172a;

    font-size:
        clamp(1.45rem, 1.65vw, 1.9rem);

    line-height:
        1.1;

    font-weight:
        800;

    letter-spacing:
        -.035em;

    white-space:
        nowrap;
}

.orbi-dashboard-financial-grid
.orbi-dashboard-kpi-copy
.text-xs {
    margin-top:
        8px !important;

    color:
        #64748b !important;

    line-height:
        1.35;
}

/*
 * Keep 4 cards on normal desktop widths.
 * Move to 2x2 only when the usable viewport
 * becomes genuinely narrow.
 */
@media (max-width: 980px) {

    .orbi-dashboard-financial-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 620px) {

    .orbi-dashboard-financial-grid {
        grid-template-columns:
            1fr !important;
    }

    .orbi-dashboard-financial-grid
    > .orbi-dashboard-kpi {
        min-height:
            126px;
    }
}
