:root {
    --primary: #8B5CF6;
    --primary-hover: #7C3AED;
    --primary-rgb: 139, 92, 246;
    --secondary: #1F6F78;
    --accent: #D4A72C;
    --success: #16845B;
    --warning: #D98E04;
    --danger: #C83E4D;
    --info: #3578A8;
    --background: #F7F9FA;
    --surface: #FFFFFF;
    --text-primary: #172B2D;
    --text-secondary: #667477;
    --border: #E2E8E9;
    --shadow: 0 1px 2px rgba(23, 43, 45, 0.04);
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-7: 32px;
    --space-8: 40px;
    --space-9: 48px;
    --nav-height: 64px;
    --radius: 8px;
    --font-sans: 'Inter', sans-serif;
    --font-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;

    --gnb-ink: var(--text-primary);
    --gnb-accent: var(--primary);
    --gnb-bg: var(--background);

    --bs-primary: #8B5CF6;
    --bs-primary-rgb: 139, 92, 246;
    --bs-secondary: #667477;
    --bs-secondary-rgb: 102, 116, 119;
    --bs-success: #16845B;
    --bs-success-rgb: 22, 132, 91;
    --bs-info: #3578A8;
    --bs-info-rgb: 53, 120, 168;
    --bs-warning: #D98E04;
    --bs-warning-rgb: 217, 142, 4;
    --bs-danger: #C83E4D;
    --bs-danger-rgb: 200, 62, 77;
    --bs-body-font-family: var(--font-sans);
    --bs-body-color: #172B2D;
    --bs-body-bg: #F7F9FA;
    --bs-border-color: #E2E8E9;
    --bs-border-radius: 8px;
    --bs-border-radius-sm: 8px;
    --bs-border-radius-lg: 8px;
    --bs-link-color: #8B5CF6;
    --bs-link-hover-color: #7C3AED;
    --bs-focus-ring-color: rgba(139, 92, 246, 0.18);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    overflow-x: hidden;
}

body {
    background: var(--background);
    color: var(--text-primary);
    font-family: var(--font-sans);
    font-size: 14.5px;
    font-weight: 400;
    line-height: 1.5;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    color: var(--text-primary);
    letter-spacing: -0.02em;
}

h1, .h1,
h1.h3, h1.h4 {
    font-weight: 700;
}

h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
    font-weight: 600;
}

.h3 {
    font-size: 1.5rem;
    font-weight: 700;
}

.h4 {
    font-size: 1.25rem;
    font-weight: 700;
}

.h6 {
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.01em;
}

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

a {
    color: var(--primary);
    text-underline-offset: 2px;
}

a:hover {
    color: var(--primary-hover);
}

main.container-fluid {
    padding-top: var(--space-6);
    padding-bottom: var(--space-9);
    max-width: 100%;
}

/* -------------------------------------------------------------------------- */
/* Top navigation                                                             */
/* -------------------------------------------------------------------------- */

.navbar.soluto-nav {
    position: sticky;
    top: 0;
    z-index: 1030;
    min-height: var(--nav-height);
    padding: 0;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    box-shadow: none;
}

.soluto-nav .container-fluid {
    display: flex;
    align-items: center;
    min-height: var(--nav-height);
    gap: var(--space-4);
    padding-left: var(--space-6);
    padding-right: var(--space-6);
}

.soluto-nav .navbar-brand {
    display: inline-flex;
    align-items: center;
    margin-right: var(--space-4);
    line-height: 0;
    flex-shrink: 0;
}

.soluto-nav .navbar-logo {
    display: block;
    height: 32px;
    width: auto;
}

.soluto-nav .navbar-collapse {
    align-items: stretch;
}

.soluto-nav .navbar-nav {
    align-items: stretch;
    gap: 0;
}

.soluto-nav .nav-item {
    display: flex;
    align-items: stretch;
}

.soluto-nav .nav-link {
    display: flex;
    align-items: center;
    height: var(--nav-height);
    padding: 0 var(--space-3);
    color: var(--text-secondary) !important;
    font-size: 14.5px;
    font-weight: 500;
    line-height: 1;
    border-radius: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
}

.soluto-nav .nav-link:hover,
.soluto-nav .nav-link:focus {
    color: var(--text-primary) !important;
    background: transparent;
}

.soluto-nav .nav-link.active {
    color: var(--primary) !important;
    font-weight: 600;
    border-bottom-color: var(--primary);
}

.soluto-nav .dropdown-menu {
    margin-top: 0;
    padding: var(--space-2);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow), 0 8px 24px rgba(23, 43, 45, 0.06);
}

.soluto-nav .dropdown-item {
    padding: var(--space-2) var(--space-3);
    border-radius: 6px;
    color: var(--text-primary);
    font-size: 14px;
    font-weight: 500;
}

.soluto-nav .dropdown-item:hover,
.soluto-nav .dropdown-item:focus {
    background: var(--background);
    color: var(--primary);
}

.soluto-nav .dropdown-item.active,
.soluto-nav .dropdown-item:active {
    background: rgba(var(--primary-rgb), 0.08);
    color: var(--primary);
}

.soluto-nav .navbar-toolbar {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-left: auto;
    padding-left: var(--space-5);
    border-left: 1px solid var(--border);
    order: 2;
}

.soluto-nav .navbar-user {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--text-primary);
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
}

.soluto-nav .navbar-user-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(var(--primary-rgb), 0.08);
    color: var(--primary);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.soluto-nav .btn-logout {
    --bs-btn-bg: #FF2C2C;
    --bs-btn-border-color: #FF2C2C;
    --bs-btn-color: #ffffff;
    --bs-btn-hover-bg: #e62525;
    --bs-btn-hover-border-color: #e62525;
    --bs-btn-hover-color: #ffffff;
    --bs-btn-active-bg: #cc2020;
    --bs-btn-active-border-color: #cc2020;
    --bs-btn-active-color: #ffffff;
}

.soluto-nav .navbar-toggler {
    padding: 6px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: none;
}

.soluto-nav .navbar-toggler:focus {
    box-shadow: 0 0 0 3px rgba(var(--primary-rgb), 0.12);
}

.soluto-nav .navbar-toggler-icon {
    width: 18px;
    height: 18px;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%238B5CF6' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

@media (min-width: 1200px) {
    .soluto-nav .navbar-collapse {
        order: 1;
        flex: 1 1 auto;
    }

    .soluto-nav .navbar-toolbar {
        order: 2;
    }
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
    .soluto-nav .container-fluid {
        padding-left: var(--space-4);
        padding-right: var(--space-4);
        gap: var(--space-2);
    }

    .soluto-nav .nav-link {
        padding: 0 var(--space-2);
        font-size: 14px;
    }

    .soluto-nav .navbar-user-name {
        display: none;
    }
}

@media (max-width: 1199.98px) {
    .soluto-nav .container-fluid {
        flex-wrap: wrap;
        padding-left: var(--space-4);
        padding-right: var(--space-4);
    }

    .soluto-nav .navbar-toolbar {
        order: 2;
        border-left: 0;
        padding-left: 0;
        margin-left: auto;
    }

    .soluto-nav .navbar-collapse {
        flex-basis: 100%;
        order: 3;
        border-top: 1px solid var(--border);
        margin: 0 calc(var(--space-4) * -1);
        padding: var(--space-2) var(--space-4) var(--space-4);
        background: var(--surface);
    }

    .soluto-nav .navbar-nav {
        flex-direction: column;
        width: 100%;
        padding-top: var(--space-2);
    }

    .soluto-nav .nav-item {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
    }

    .soluto-nav .nav-link {
        height: 44px;
        width: 100%;
        padding: 0 var(--space-3);
        border-bottom: 0;
        border-left: 2px solid transparent;
        border-radius: 6px;
    }

    .soluto-nav .nav-link.active {
        border-left-color: var(--primary);
        background: rgba(var(--primary-rgb), 0.04);
    }

    .soluto-nav .dropdown-menu {
        position: static;
        box-shadow: none;
        border: 0;
        margin: 0 0 0 var(--space-4);
        padding: 0 0 var(--space-2);
    }
}

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

.card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: none;
}

.card.p-3 {
    padding: var(--space-5) !important;
}

.card.p-4 {
    padding: var(--space-6) !important;
}

.list-group {
    --bs-list-group-bg: var(--surface);
    --bs-list-group-color: var(--text-primary);
    --bs-list-group-border-color: var(--border);
    --bs-list-group-action-hover-bg: var(--background);
    --bs-list-group-action-active-bg: var(--background);
    --bs-list-group-action-active-color: var(--text-primary);
}

.list-group-item {
    background-color: var(--surface);
    border-color: var(--border);
    color: var(--text-primary);
}

/* -------------------------------------------------------------------------- */
/* Buttons                                                                    */
/* -------------------------------------------------------------------------- */

.btn {
    border-radius: var(--radius);
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0;
    padding: 8px 16px;
    transition: background-color 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}

.btn-sm {
    padding: 6px 12px;
    font-size: 13px;
    border-radius: var(--radius);
}

.btn-primary {
    --bs-btn-bg: var(--primary);
    --bs-btn-border-color: var(--primary);
    --bs-btn-color: #ffffff;
    --bs-btn-hover-bg: var(--primary-hover);
    --bs-btn-hover-border-color: var(--primary-hover);
    --bs-btn-hover-color: #ffffff;
    --bs-btn-active-bg: var(--primary-hover);
    --bs-btn-active-border-color: var(--primary-hover);
    --bs-btn-disabled-bg: var(--primary);
    --bs-btn-disabled-border-color: var(--primary);
}

.btn-outline-primary {
    --bs-btn-color: var(--primary);
    --bs-btn-bg: var(--surface);
    --bs-btn-border-color: var(--primary);
    --bs-btn-hover-bg: rgba(var(--primary-rgb), 0.08);
    --bs-btn-hover-border-color: var(--primary-hover);
    --bs-btn-hover-color: var(--primary-hover);
    --bs-btn-active-bg: rgba(var(--primary-rgb), 0.12);
    --bs-btn-active-border-color: var(--primary-hover);
    --bs-btn-active-color: var(--primary-hover);
}

.btn-outline-secondary,
.btn-outline-dark {
    --bs-btn-color: var(--text-primary);
    --bs-btn-bg: var(--surface);
    --bs-btn-border-color: var(--border);
    --bs-btn-hover-bg: var(--background);
    --bs-btn-hover-border-color: #d3dcdd;
    --bs-btn-hover-color: var(--text-primary);
    --bs-btn-active-bg: var(--background);
    --bs-btn-active-border-color: var(--border);
    --bs-btn-active-color: var(--text-primary);
}

.btn-outline-light {
    --bs-btn-color: var(--text-secondary);
    --bs-btn-bg: var(--surface);
    --bs-btn-border-color: var(--border);
    --bs-btn-hover-bg: var(--background);
    --bs-btn-hover-border-color: var(--border);
    --bs-btn-hover-color: var(--text-primary);
    --bs-btn-active-bg: var(--background);
    --bs-btn-active-color: var(--text-primary);
}

.btn-link {
    color: var(--primary);
    font-weight: 500;
    text-decoration: none;
}

.btn-link:hover {
    color: var(--primary-hover);
}

/* -------------------------------------------------------------------------- */
/* Forms                                                                      */
/* -------------------------------------------------------------------------- */

.form-label {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-primary);
    margin-bottom: var(--space-2);
}

.form-control,
.form-select {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    color: var(--text-primary);
    font-size: 14.5px;
    min-height: 40px;
    padding: 8px 12px;
    box-shadow: none;
    background-color: var(--surface);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(var(--primary-rgb), 0.18);
}

.form-control::placeholder {
    color: #9aa6a7;
}

.form-text {
    color: var(--text-secondary);
    font-size: 12.5px;
}

.input-group-text {
    background: var(--background);
    border: 1px solid var(--border);
    color: var(--text-secondary);
    font-family: var(--font-mono);
    font-size: 13px;
}

.input-group-sm .form-control,
.input-group-sm .input-group-text {
    min-height: 36px;
}

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

.table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--text-primary);
    --bs-table-border-color: var(--border);
    --bs-table-hover-bg: #f4f7f7;
    --bs-table-striped-bg: #fbfcfc;
    font-size: 14.5px;
    margin-bottom: 0;
}

.table > :not(caption) > * > * {
    border-bottom-width: 1px;
    box-shadow: none;
}

.table:not(.table-sm) > :not(caption) > * > * {
    padding: 14px 16px;
    vertical-align: middle;
}

.table:not(.table-sm) tbody tr {
    height: 50px;
}

.table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--surface);
    color: var(--text-secondary);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--border);
    white-space: nowrap;
}

.table thead.table-light th,
.table .table-light th,
.table .table-light td {
    background: var(--background);
}

.table tbody tr:hover {
    background: #f4f7f7;
}

.table tfoot td,
.table tfoot th,
.table-light {
    --bs-table-bg: #f7f9fa;
    background-color: #f7f9fa;
    color: var(--text-primary);
}

.table-bordered {
    border-color: var(--border);
}

.table-bordered > :not(caption) > * > * {
    border-color: var(--border);
}

.table-sm > :not(caption) > * > * {
    padding: 10px 12px;
}

.table td.text-end,
.table th.text-end {
    font-variant-numeric: tabular-nums;
}

.table td.text-end:not(:has(> a:only-child)),
.table th.text-end,
code,
.detail-amount,
.amount-short,
.commission-card-value {
    font-family: var(--font-mono);
}

code {
    font-size: 12.5px;
    font-weight: 400;
    color: var(--text-secondary);
    background: transparent;
    padding: 0;
    word-break: break-all;
}

code.secret {
    word-break: break-all;
}

.is-amount {
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
}

.table-responsive {
    max-width: 100%;
}

.lead-calls-table {
    overflow-x: hidden;
}

.lead-calls-table .table {
    table-layout: fixed;
    width: 100%;
}

.lead-activity-notes {
    width: 38%;
    overflow: hidden;
}

.lead-calls-table th:last-child,
.lead-calls-table td:last-child {
    width: 72px;
}

/* -------------------------------------------------------------------------- */
/* Status badges                                                              */
/* -------------------------------------------------------------------------- */

.badge {
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: 0.01em;
    padding: 4px 8px;
    border-radius: 6px;
    border: 1px solid transparent;
}

.badge.text-bg-success {
    background: rgba(22, 132, 91, 0.10) !important;
    color: var(--success) !important;
    border-color: rgba(22, 132, 91, 0.16);
}

.badge.text-bg-warning {
    background: rgba(217, 142, 4, 0.12) !important;
    color: #a86d04 !important;
    border-color: rgba(217, 142, 4, 0.18);
}

.badge.text-bg-danger {
    background: rgba(200, 62, 77, 0.10) !important;
    color: var(--danger) !important;
    border-color: rgba(200, 62, 77, 0.16);
}

.badge.text-bg-info {
    background: rgba(53, 120, 168, 0.10) !important;
    color: var(--info) !important;
    border-color: rgba(53, 120, 168, 0.16);
}

.badge.text-bg-primary {
    background: rgba(var(--primary-rgb), 0.08) !important;
    color: var(--primary) !important;
    border-color: rgba(var(--primary-rgb), 0.12);
}

.badge.text-bg-secondary,
.badge.text-bg-light {
    background: rgba(102, 116, 119, 0.08) !important;
    color: var(--text-secondary) !important;
    border-color: rgba(102, 116, 119, 0.12);
}

/* -------------------------------------------------------------------------- */
/* KPI / metrics                                                              */
/* -------------------------------------------------------------------------- */

.display-6 {
    font-size: 1.75rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.2;
    color: var(--text-primary);
}

.card .text-secondary.small {
    font-size: 12.5px;
    font-weight: 500;
}

.metric-panel {
    height: 100%;
    padding: var(--space-5);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.metric-value {
    color: var(--text-primary);
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}

.metric-label {
    margin-top: var(--space-1);
    color: var(--text-secondary);
    font-size: 12.5px;
    font-weight: 500;
}

.metric-sub {
    margin-top: 2px;
    color: var(--text-secondary);
    font-size: 12.5px;
    font-variant-numeric: tabular-nums;
}

.month-switcher {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: var(--space-2);
}

.month-switcher__label {
    text-align: center;
    white-space: nowrap;
}

.month-switcher__prev {
    justify-self: start;
}

.month-switcher__next {
    justify-self: end;
}

.daily-activity-sidebar {
    position: sticky;
    top: calc(var(--nav-height) + var(--space-4));
    overflow: hidden;
}

.daily-activity-sidebar .card-body {
    padding: 0;
}

.daily-activity-head {
    padding: var(--space-5) var(--space-5) var(--space-4);
    background: linear-gradient(180deg, rgba(var(--primary-rgb), 0.07) 0%, var(--surface) 100%);
    border-bottom: 1px solid var(--border);
}

.daily-activity-kicker {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--primary);
}

.daily-activity-chip {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(var(--primary-rgb), 0.12);
    color: var(--primary);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.daily-activity-date {
    color: var(--text-primary);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -0.02em;
    line-height: 1.3;
}

.daily-activity-tz {
    margin-top: 2px;
    color: var(--text-secondary);
    font-size: 12px;
}

.daily-activity-daynav {
    display: flex;
    align-items: center;
    gap: 6px;
}

.daily-activity-daynav__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    flex-shrink: 0;
}

.daily-activity-daynav .form-control {
    min-width: 0;
    min-height: 36px;
    flex: 1;
    padding: 4px 8px;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}

.daily-activity-section {
    padding: var(--space-4) var(--space-5);
}

.daily-activity-section + .daily-activity-section {
    border-top: 1px solid var(--border);
}

.daily-activity-section--money {
    background: rgba(22, 132, 91, 0.05);
}

.daily-activity-section-label {
    margin-bottom: var(--space-3);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--text-secondary);
}

.daily-activity-tiles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.daily-activity-tile {
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--background);
}

.daily-activity-tile--wide {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 12px;
}

.daily-activity-tile--wide .daily-activity-tile__icon {
    margin-bottom: 0;
    flex-shrink: 0;
}

.daily-activity-tile--wide .daily-activity-tile__copy {
    min-width: 0;
    flex: 1;
}

.daily-activity-tile--wide .daily-activity-tile__label {
    margin-top: 0;
}

.daily-activity-tile--wide .daily-activity-tile__value {
    margin-left: auto;
    flex-shrink: 0;
}

.daily-activity-tile__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin-bottom: 8px;
    border-radius: 8px;
}

.daily-activity-tile__icon.is-calls {
    color: var(--info);
    background: rgba(53, 120, 168, 0.12);
}

.daily-activity-tile__icon.is-positive {
    color: var(--success);
    background: rgba(22, 132, 91, 0.12);
}

.daily-activity-tile__icon.is-customers {
    color: var(--primary);
    background: rgba(var(--primary-rgb), 0.12);
}

.daily-activity-tile__icon.is-adfin {
    color: var(--secondary);
    background: rgba(31, 111, 120, 0.12);
}

.daily-activity-tile__icon.is-dd {
    color: #B45309;
    background: rgba(217, 142, 4, 0.14);
}

.daily-activity-tile__icon.is-money {
    color: var(--success);
    background: rgba(22, 132, 91, 0.16);
}

.daily-activity-tile__value {
    color: var(--text-primary);
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
}

.daily-activity-tile__label {
    margin-top: 4px;
    color: var(--text-primary);
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.3;
}

.daily-activity-tile__hint {
    margin-top: 2px;
    color: var(--text-secondary);
    font-size: 12px;
    line-height: 1.3;
    font-variant-numeric: tabular-nums;
}

.daily-activity-money {
    display: flex;
    align-items: center;
    gap: 12px;
}

.daily-activity-money .daily-activity-tile__icon {
    width: 36px;
    height: 36px;
    margin-bottom: 0;
    flex-shrink: 0;
}

.daily-activity-money .daily-activity-tile__label {
    margin-top: 0;
}

.daily-activity-money .daily-activity-tile__value {
    margin-top: 2px;
    font-size: 1.5rem;
    color: var(--success);
}

@media (max-width: 991.98px) {
    .daily-activity-sidebar {
        position: static;
    }
}

/* -------------------------------------------------------------------------- */
/* Onboarding timeline                                                        */
/* -------------------------------------------------------------------------- */

.onboarding-timeline__item {
    position: relative;
    display: flex;
    gap: var(--space-4);
    padding-bottom: var(--space-6);
}

.onboarding-timeline__item:last-child {
    padding-bottom: 0;
}

.onboarding-timeline__item:not(:last-child)::before {
    content: "";
    position: absolute;
    top: 28px;
    left: 13px;
    bottom: 0;
    width: 2px;
    background: var(--border);
}

.onboarding-timeline__item.is-reached:not(:last-child)::before {
    background: rgba(22, 132, 91, 0.35);
}

.onboarding-timeline__marker {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    font-size: 12.5px;
    font-weight: 600;
    background: var(--background);
    color: var(--text-secondary);
    border: 1px solid var(--border);
    z-index: 1;
}

.onboarding-timeline__item.is-reached .onboarding-timeline__marker {
    background: rgba(22, 132, 91, 0.12);
    color: var(--success);
    border-color: rgba(22, 132, 91, 0.24);
}

.onboarding-timeline__item.is-current .onboarding-timeline__marker {
    background: var(--primary);
    color: #ffffff;
    border-color: var(--primary);
}

.onboarding-timeline__body {
    padding-top: 2px;
}

.onboarding-timeline__item.is-pending .onboarding-timeline__body .fw-semibold {
    color: var(--text-secondary);
}

/* -------------------------------------------------------------------------- */
/* Tabs, alerts, pagination                                                   */
/* -------------------------------------------------------------------------- */

.nav-tabs {
    border-bottom-color: var(--border);
    gap: var(--space-1);
}

.nav-tabs .nav-link {
    color: var(--text-secondary);
    font-size: 14px;
    font-weight: 500;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    padding: 10px 14px;
    background: transparent;
}

.nav-tabs .nav-link:hover {
    color: var(--text-primary);
    border-color: transparent;
    isolation: isolate;
}

.nav-tabs .nav-link.active {
    color: var(--primary);
    font-weight: 600;
    background: transparent;
    border-color: transparent transparent var(--primary);
}

.alert {
    border-radius: var(--radius);
    border: 1px solid transparent;
    font-size: 14px;
}

.alert-success {
    background: rgba(22, 132, 91, 0.08);
    border-color: rgba(22, 132, 91, 0.18);
    color: var(--success);
}

.alert-danger {
    background: rgba(200, 62, 77, 0.08);
    border-color: rgba(200, 62, 77, 0.18);
    color: var(--danger);
}

.alert-secondary {
    background: var(--background);
    border-color: var(--border);
    color: var(--text-secondary);
}

.modal-content {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: 0 8px 24px rgba(23, 43, 45, 0.08);
}

.modal-header,
.modal-footer {
    border-color: var(--border);
    padding: 16px 20px;
}

.modal-title {
    font-weight: 600;
    letter-spacing: -0.02em;
}

.modal-body {
    padding: 20px;
}

.progress-action-modal .modal-content {
    box-shadow: 0 12px 32px rgba(23, 43, 45, 0.12);
}

.progress-action-spinner {
    width: 2.5rem;
    height: 2.5rem;
}

.progress-action-check {
    width: 48px;
    height: 48px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--success);
    color: #fff;
}

.modal-dialog-centered.modal-dialog-scrollable .modal-content {
    max-height: calc(100vh - 2 * var(--bs-modal-margin, 1.75rem));
}

.modal-dialog-scrollable .modal-content > form {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
}

.modal-dialog-scrollable .modal-content > form > .modal-body {
    min-height: 0;
}

.pagination {
    --bs-pagination-color: var(--text-primary);
    --bs-pagination-bg: var(--surface);
    --bs-pagination-border-color: var(--border);
    --bs-pagination-hover-color: var(--primary);
    --bs-pagination-hover-bg: var(--background);
    --bs-pagination-hover-border-color: var(--border);
    --bs-pagination-focus-color: var(--primary);
    --bs-pagination-focus-bg: var(--background);
    --bs-pagination-focus-box-shadow: 0 0 0 3px rgba(var(--primary-rgb), 0.12);
    --bs-pagination-active-bg: var(--primary);
    --bs-pagination-active-border-color: var(--primary);
    --bs-pagination-disabled-bg: var(--surface);
    --bs-pagination-disabled-color: var(--text-secondary);
    --bs-pagination-border-radius: var(--radius);
    gap: 4px;
}

.page-link {
    font-size: 13px;
    font-weight: 500;
    border-radius: 6px;
}

dl dt {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-secondary);
}

dl dd {
    font-size: 14.5px;
    color: var(--text-primary);
}

h1 code,
.h3 code {
    font-size: 0.9em;
    font-weight: 600;
    color: var(--text-primary);
}

pre {
    font-family: var(--font-mono);
    font-size: 12.5px;
    color: var(--text-primary);
    background: var(--background);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 16px;
    overflow-x: auto;
}

/* -------------------------------------------------------------------------- */
/* Login                                                                      */
/* -------------------------------------------------------------------------- */

body:not(:has(.soluto-nav)) {
    background: #f7f8fa;
}

body:not(:has(.soluto-nav)) main.container-fluid {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: stretch;
    padding: 0 !important;
    max-width: none;
}

.login-page {
    position: relative;
    width: 100%;
    min-height: 100vh;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-6);
}

.pulse-background {
    background:
        radial-gradient(
            circle at 50% 50%,
            rgba(var(--primary-rgb), 0.09) 0%,
            rgba(var(--primary-rgb), 0.035) 25%,
            rgba(255, 255, 255, 0) 55%
        ),
        #f7f8fa;
}

.pulse-rings {
    position: absolute;
    width: 900px;
    height: 900px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.ring {
    position: absolute;
    top: 50%;
    left: 50%;
    border-radius: 50%;
    border: 1px solid rgba(var(--primary-rgb), 0.08);
    transform: translate(-50%, -50%);
}

.ring-1 { width: 350px; height: 350px; }
.ring-2 { width: 500px; height: 500px; }
.ring-3 { width: 650px; height: 650px; }
.ring-4 { width: 800px; height: 800px; }
.ring-5 { width: 950px; height: 950px; }

.pulse-rings::after {
    content: "";
    position: absolute;
    width: 10px;
    height: 10px;
    left: 88%;
    top: 50%;
    background: var(--primary);
    opacity: 0.18;
    border-radius: 50%;
}

.login-card {
    position: relative;
    z-index: 10;
    width: min(100%, 440px);
}

.login-logo {
    display: block;
    width: min(100%, 240px);
    height: auto;
    margin: 0 auto var(--space-5);
}

.btn-login {
    --bs-btn-color: #ffffff;
    --bs-btn-hover-color: #ffffff;
    --bs-btn-active-color: #ffffff;
    flex: 1;
    font-weight: 600;
    padding: 10px 12px;
    white-space: nowrap;
}

.login-actions {
    display: flex;
    gap: var(--space-3);
}

.btn-login-google {
    --bs-btn-bg: #EA4335;
    --bs-btn-border-color: #EA4335;
    --bs-btn-hover-bg: #D33426;
    --bs-btn-hover-border-color: #D33426;
    --bs-btn-active-bg: #C5221F;
    --bs-btn-active-border-color: #C5221F;
}

.btn-login-microsoft {
    --bs-btn-bg: #0072C6;
    --bs-btn-border-color: #0072C6;
    --bs-btn-hover-bg: #0060A8;
    --bs-btn-hover-border-color: #0060A8;
    --bs-btn-active-bg: #005494;
    --bs-btn-active-border-color: #005494;
}

@media (max-width: 575.98px) {
    .soluto-nav .navbar-user-name {
        display: none;
    }

    main.container-fluid {
        padding-left: var(--space-4) !important;
        padding-right: var(--space-4) !important;
        padding-top: var(--space-4);
    }

    .h3 {
        font-size: 1.25rem;
    }

    .display-6 {
        font-size: 1.5rem;
    }

    .login-actions .btn-login {
        font-size: 13px;
        padding: 10px 8px;
    }
}
