:root {
    --lp-navy: #071323;
    --lp-ink: #172033;
    --lp-sky: #2bb3ff;
    --lp-teal: #19d3b5;
    --lp-violet: #6d6ff5;
    --lp-rose: #ff6b8a;
    --lp-amber: #f7b84b;
    --lp-surface: #ffffff;
    --lp-muted: #748094;
    --lp-line: #e7edf5;
    --lp-shadow: 0 18px 45px rgba(15, 23, 42, .09);
}

body {
    background: #f4f7fb;
}

html[dir="rtl"] {
    text-align: right;
}

.lp-auth-language {
    position: absolute;
    top: 22px;
    right: 22px;
    z-index: 3;
    display: flex;
    gap: 8px;
}

[dir="rtl"] .lp-auth-language {
    right: auto;
    left: 22px;
}

.lp-auth-page {
    min-height: 100vh;
    overflow: hidden;
    background:
        radial-gradient(circle at 12% 16%, rgba(43, 179, 255, .28), transparent 28%),
        radial-gradient(circle at 78% 10%, rgba(25, 211, 181, .2), transparent 26%),
        linear-gradient(135deg, #071323 0%, #0b1d35 46%, #102849 100%);
    color: #fff;
    position: relative;
}

.lp-auth-page::before,
.lp-auth-page::after {
    content: "";
    position: absolute;
    border-radius: 999px;
    filter: blur(2px);
    opacity: .42;
    animation: lpFloat 9s ease-in-out infinite;
}

.lp-auth-page::before {
    width: 220px;
    height: 220px;
    border: 1px solid rgba(43, 179, 255, .28);
    top: 12%;
    right: 10%;
}

.lp-auth-page::after {
    width: 160px;
    height: 160px;
    border: 1px solid rgba(25, 211, 181, .32);
    bottom: 10%;
    left: 8%;
    animation-delay: -3s;
}

.lp-auth-grid {
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 460px);
    gap: 56px;
    align-items: center;
    position: relative;
    z-index: 1;
    padding: 48px max(24px, 6vw);
}

.lp-auth-brand {
    max-width: 700px;
}

.lp-brand-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border-radius: 16px;
    color: #06111f;
    background: linear-gradient(135deg, var(--lp-teal), var(--lp-sky));
    font-weight: 800;
    letter-spacing: .4px;
    box-shadow: 0 20px 45px rgba(43, 179, 255, .24);
}

.lp-auth-title {
    font-size: clamp(2.3rem, 5vw, 4.8rem);
    line-height: 1.02;
    margin: 26px 0 18px;
    color: #fff;
}

.lp-auth-tagline {
    color: rgba(255, 255, 255, .72);
    font-size: 1.08rem;
    max-width: 540px;
}

.lp-auth-visual {
    margin-top: 34px;
    max-width: 620px;
}

.lp-auth-panel {
    border: 1px solid rgba(255, 255, 255, .18);
    background: rgba(255, 255, 255, .11);
    box-shadow: 0 30px 80px rgba(0, 0, 0, .3);
    backdrop-filter: blur(18px);
    border-radius: 24px;
    padding: 34px;
}

.lp-auth-panel .form-control {
    min-height: 48px;
    border-color: rgba(255, 255, 255, .16);
    background: rgba(255, 255, 255, .95);
}

.lp-auth-panel .form-label,
.lp-auth-panel .form-check-label {
    color: rgba(255, 255, 255, .84);
}

.lp-auth-panel .text-muted {
    color: rgba(255, 255, 255, .65) !important;
}

.lp-input-icon {
    position: relative;
}

.lp-input-icon > i {
    position: absolute;
    top: 50%;
    left: 14px;
    transform: translateY(-50%);
    z-index: 2;
    color: var(--lp-muted);
}

.lp-input-icon .form-control {
    padding-left: 42px;
}

[dir="rtl"] .lp-input-icon > i {
    left: auto;
    right: 14px;
}

[dir="rtl"] .lp-input-icon .form-control {
    padding-left: .9rem;
    padding-right: 42px;
}

.lp-auth-submit {
    min-height: 48px;
    border: 0;
    background: linear-gradient(135deg, var(--lp-teal), var(--lp-sky));
    color: #06111f;
    font-weight: 700;
    box-shadow: 0 14px 34px rgba(43, 179, 255, .28);
}

.lp-auth-submit.is-loading {
    pointer-events: none;
    opacity: .82;
}

.lp-dashboard-hero {
    position: relative;
    overflow: hidden;
    border-radius: 18px;
    background:
        linear-gradient(135deg, rgba(7, 19, 35, .96), rgba(19, 52, 88, .94)),
        url("/velzon/assets/images/bg-d.png") center/cover;
    color: #fff;
    padding: 30px;
    box-shadow: var(--lp-shadow);
}

.lp-dashboard-hero::after {
    content: "";
    position: absolute;
    inset: auto -6% -38% auto;
    width: 360px;
    height: 360px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(43, 179, 255, .22), transparent 65%);
}

.lp-kpi-card {
    border: 1px solid var(--lp-line);
    border-radius: 14px;
    box-shadow: var(--lp-shadow);
    overflow: hidden;
}

.lp-kpi-card .card-body {
    position: relative;
}

.lp-kpi-card .avatar-title {
    border-radius: 14px;
}

.lp-panel {
    border: 1px solid var(--lp-line);
    border-radius: 14px;
    box-shadow: var(--lp-shadow);
}

.lp-panel .card-header {
    background: var(--lp-surface);
    border-bottom: 1px solid var(--lp-line);
}

.lp-progress-row {
    display: grid;
    grid-template-columns: minmax(120px, 170px) 1fr 54px;
    gap: 14px;
    align-items: center;
}

.lp-list-card {
    border: 1px solid var(--lp-line);
    border-radius: 14px;
    box-shadow: var(--lp-shadow);
}

.lp-toolbar {
    background: #f8fafc;
    border: 1px solid var(--lp-line);
    border-radius: 12px;
    padding: 14px;
}

.lp-table {
    --vz-table-border-color: #edf2f7;
}

.lp-table,
.lp-table th,
.lp-table td {
    vertical-align: middle;
}

.lp-table thead th {
    background: #f8fafc;
    color: #4b5565;
    font-size: .76rem;
    letter-spacing: 0;
    text-transform: uppercase;
    white-space: nowrap;
}

[dir="rtl"] .lp-table th,
[dir="rtl"] .lp-table td {
    text-align: right;
}

[dir="rtl"] .lp-table .text-end,
[dir="rtl"] .quote-num {
    text-align: left !important;
}

.lp-responsive-card {
    min-width: 760px;
}

.lp-action-button {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.lp-form-shell {
    border: 1px solid var(--lp-line);
    border-radius: 14px;
    box-shadow: var(--lp-shadow);
}

.lp-form-shell .card-header {
    background: linear-gradient(180deg, #fff, #f8fafc);
}

.lp-empty-state {
    padding: 42px 16px;
    color: var(--lp-muted);
}

[dir="rtl"] .breadcrumb-item + .breadcrumb-item {
    padding-left: 0;
    padding-right: var(--vz-breadcrumb-item-padding-x);
}

[dir="rtl"] .breadcrumb-item + .breadcrumb-item::before {
    float: right;
    padding-left: var(--vz-breadcrumb-item-padding-x);
    padding-right: 0;
    transform: rotate(180deg);
}

[dir="rtl"] .dropdown-menu-end {
    left: 0 !important;
    right: auto !important;
}

[dir="rtl"] .btn i.me-1,
[dir="rtl"] .btn .me-1 {
    margin-right: 0 !important;
    margin-left: .25rem !important;
}

[dir="rtl"] .btn i.ms-1,
[dir="rtl"] .btn .ms-1 {
    margin-left: 0 !important;
    margin-right: .25rem !important;
}

[dir="rtl"] .input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
    margin-left: 0;
    margin-right: -1px;
    border-top-left-radius: var(--vz-border-radius);
    border-bottom-left-radius: var(--vz-border-radius);
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

[dir="rtl"] .input-group > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    border-top-right-radius: var(--vz-border-radius);
    border-bottom-right-radius: var(--vz-border-radius);
}

[dir="rtl"] .form-select {
    background-position: left .75rem center;
    padding-right: .9rem;
    padding-left: 2.7rem;
}

[dir="rtl"] .lp-progress-row {
    grid-template-columns: 54px 1fr minmax(120px, 170px);
}

[dir="rtl"] .lp-kanban-board,
[dir="rtl"] .kanban-board {
    direction: rtl;
}

[dir="rtl"] .lp-report-filter .form-label,
[dir="rtl"] .lp-toolbar .form-label {
    text-align: right;
}

.white-space-pre-line {
    white-space: pre-line;
}

@media (max-width: 767.98px) {
    .page-title-box {
        gap: 12px;
    }

    .page-title-box .page-title-right {
        width: 100%;
    }

    .lp-toolbar {
        padding: 12px;
    }

    .lp-responsive-card {
        min-width: 640px;
    }

    .lp-action-button {
        width: 32px;
        height: 32px;
    }
}

@media print {
    .no-print,
    .app-menu,
    #page-topbar,
    .page-title-box,
    .vertical-overlay {
        display: none !important;
    }

    .main-content,
    .page-content,
    .container-fluid {
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
    }
}

@keyframes lpFloat {
    0%, 100% {
        transform: translate3d(0, 0, 0);
    }
    50% {
        transform: translate3d(16px, -18px, 0);
    }
}

.lp-login-v2 {
    min-height: 100vh;
    direction: ltr !important;
    background:
        radial-gradient(circle at 18% 18%, rgba(37, 160, 226, .18), transparent 30%),
        radial-gradient(circle at 88% 12%, rgba(135, 114, 249, .16), transparent 28%),
        linear-gradient(135deg, #f7fbff 0%, #eef6ff 52%, #f9fbff 100%);
    color: var(--lp-ink);
    position: relative;
    overflow: hidden;
}

.lp-login-v2,
.lp-login-v2 * {
    text-align: left;
}

.lp-login-language {
    position: absolute;
    top: 24px;
    right: 28px;
    z-index: 4;
    display: flex;
    gap: 8px;
}

.lp-login-language .btn {
    min-width: 78px;
    border-radius: 999px;
    border: 1px solid rgba(37, 160, 226, .22);
    padding: 7px 14px;
    font-size: .82rem;
    line-height: 1.2;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
    box-shadow: 0 12px 26px rgba(37, 63, 91, .10);
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}

.lp-login-language .btn-primary {
    color: #fff;
    background: linear-gradient(135deg, var(--lp-brand-primary, #25a0e2), var(--lp-brand-secondary, #6d6ff5));
    border-color: transparent;
}

.lp-login-language .btn-light {
    color: #1676b5;
    background: rgba(255, 255, 255, .88);
    border-color: rgba(37, 160, 226, .20);
}

.lp-login-language .btn:hover,
.lp-login-language .btn:focus {
    transform: translateY(-1px);
    box-shadow: 0 16px 30px rgba(37, 63, 91, .16);
}

.lp-login-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, 460px);
    gap: 44px;
    align-items: center;
    max-width: 1180px;
    margin: 0 auto;
    padding: 72px 28px 42px;
}

.lp-login-showcase {
    position: relative;
}

.lp-login-brand-row {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 28px;
}

.lp-login-mark {
    width: 62px;
    height: 62px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    background: linear-gradient(135deg, #25a0e2, #6d6ff5);
    color: #fff;
    font-size: 1.35rem;
    font-weight: 900;
    box-shadow: 0 18px 38px rgba(37, 160, 226, .26);
}

.lp-login-brand-row h1 {
    margin: 0;
    color: #0f2744;
    font-size: 2.2rem;
}

.lp-login-brand-row p {
    margin: 4px 0 0;
    color: #637083;
    font-size: 1rem;
}

.lp-login-style-panel {
    max-width: 650px;
    min-height: 360px;
    border-radius: 28px;
    padding: 28px;
    border: 1px solid rgba(37, 160, 226, .18);
    background:
        linear-gradient(135deg, rgba(37, 160, 226, .10), rgba(109, 111, 245, .12)),
        repeating-linear-gradient(90deg, rgba(37, 160, 226, .055) 0 1px, transparent 1px 44px),
        repeating-linear-gradient(0deg, rgba(109, 111, 245, .045) 0 1px, transparent 1px 44px),
        rgba(255, 255, 255, .78);
    box-shadow: 0 30px 80px rgba(37, 63, 91, .16);
    backdrop-filter: blur(14px);
    position: relative;
    overflow: hidden;
}

.lp-login-style-panel::before,
.lp-login-style-panel::after {
    content: "";
    position: absolute;
    pointer-events: none;
}

.lp-login-style-panel::before {
    left: -42%;
    top: 28%;
    width: 180%;
    height: 74px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .56), transparent);
    transform: rotate(-15deg);
    animation: lpPanelSheen 8s ease-in-out infinite;
}

.lp-login-style-panel::after {
    inset: 14px;
    border-radius: 24px;
    border: 1px solid rgba(255, 255, 255, .68);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .88);
}

.lp-brand-orbit-panel {
    display: grid;
    place-items: center;
}

.lp-brand-orbit {
    position: relative;
    z-index: 1;
    width: min(100%, 480px);
    height: 304px;
    display: grid;
    place-items: center;
    isolation: isolate;
}

.lp-brand-orbit::before,
.lp-brand-orbit::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.lp-brand-orbit::before {
    width: 230px;
    height: 230px;
    background:
        radial-gradient(circle, rgba(255, 255, 255, .78), transparent 56%),
        radial-gradient(circle, rgba(37, 160, 226, .24), transparent 64%);
    filter: blur(4px);
}

.lp-brand-orbit::after {
    width: 380px;
    height: 160px;
    background: radial-gradient(ellipse, rgba(109, 111, 245, .14), transparent 68%);
    transform: rotate(-9deg);
    opacity: .9;
}

.lp-orbit-ring {
    position: absolute;
    left: 50%;
    top: 48%;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.lp-orbit-ring-one {
    width: 272px;
    height: 272px;
    border: 1px solid rgba(37, 160, 226, .22);
    box-shadow: 0 0 0 18px rgba(37, 160, 226, .045);
    animation: lpOrbitSpin 20s linear infinite;
}

.lp-orbit-ring-two {
    width: 326px;
    height: 326px;
    border: 1px dashed rgba(109, 111, 245, .26);
    animation: lpOrbitSpin 30s linear infinite reverse;
}

.lp-orbit-ring-three {
    width: 210px;
    height: 210px;
    border: 1px solid rgba(16, 185, 129, .18);
    transform: translate(-50%, -50%) rotate(13deg) scaleY(.66);
    animation: lpOrbitTilt 8s ease-in-out infinite;
}

.lp-orbit-dot {
    --orbit-angle: 0deg;
    --orbit-radius: 136px;
    position: absolute;
    left: 50%;
    top: 48%;
    width: 14px;
    height: 14px;
    margin: -7px 0 0 -7px;
    border-radius: 50%;
    background: #fff;
    box-shadow:
        0 0 0 5px rgba(37, 160, 226, .12),
        0 0 24px rgba(37, 160, 226, .44);
    transform: rotate(var(--orbit-angle)) translateX(var(--orbit-radius));
    animation: lpOrbitDot 13s linear infinite;
}

.lp-orbit-dot-1 {
    --orbit-angle: 18deg;
    --orbit-radius: 137px;
    background: var(--lp-brand-primary, #25a0e2);
}

.lp-orbit-dot-2 {
    --orbit-angle: 145deg;
    --orbit-radius: 162px;
    background: var(--lp-brand-secondary, #6d6ff5);
    animation-duration: 18s;
    animation-direction: reverse;
}

.lp-orbit-dot-3 {
    --orbit-angle: 270deg;
    --orbit-radius: 106px;
    background: #10b981;
    animation-duration: 16s;
}

.lp-orbit-trace {
    position: absolute;
    width: 96px;
    height: 2px;
    border-radius: 99px;
    background: linear-gradient(90deg, transparent, rgba(37, 160, 226, .72), transparent);
    box-shadow: 0 0 20px rgba(37, 160, 226, .22);
    opacity: .72;
    pointer-events: none;
    animation: lpOrbitTrace 5.8s ease-in-out infinite;
}

.lp-orbit-trace-1 {
    left: 12%;
    top: 32%;
    transform: rotate(-24deg);
}

.lp-orbit-trace-2 {
    right: 10%;
    bottom: 28%;
    transform: rotate(22deg);
    animation-delay: 2.7s;
}

.lp-brand-emblem {
    position: relative;
    width: 152px;
    height: 152px;
    border-radius: 42px;
    display: grid;
    place-items: center;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, .22), transparent 28%),
        linear-gradient(135deg, var(--lp-brand-primary, #25a0e2), var(--lp-brand-secondary, #6d6ff5));
    box-shadow:
        0 34px 74px rgba(37, 63, 91, .28),
        inset 0 1px 0 rgba(255, 255, 255, .45);
    animation: lpBrandFloat 5.6s ease-in-out infinite;
}

.lp-brand-emblem::before {
    content: "";
    position: absolute;
    inset: 12px;
    border-radius: 34px;
    border: 1px solid rgba(255, 255, 255, .34);
    box-shadow: inset 0 0 28px rgba(255, 255, 255, .12);
}

.lp-brand-emblem::after {
    content: "";
    position: absolute;
    inset: -20px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(37, 160, 226, .22), transparent 68%);
    z-index: -1;
}

.lp-brand-emblem span {
    font-size: clamp(3rem, 5vw, 4.25rem);
    line-height: 1;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.lp-brand-caption {
    position: absolute;
    left: 50%;
    bottom: 2px;
    width: min(100%, 360px);
    transform: translateX(-50%);
    text-align: center;
    color: #34435a;
}

.lp-brand-caption span {
    display: inline-flex;
    margin-bottom: 6px;
    border-radius: 99px;
    padding: 5px 11px;
    background: rgba(37, 160, 226, .10);
    color: #1676b5;
    font-size: .74rem;
    font-weight: 800;
}

.lp-brand-caption strong {
    display: block;
    color: #0f2744;
    font-size: 1.08rem;
    line-height: 1.25;
}

.lp-brand-caption p {
    margin: 5px 0 0;
    color: #6b7788;
    font-size: .88rem;
    line-height: 1.45;
}

@keyframes lpPanelSheen {
    0%, 100% {
        opacity: .18;
        transform: translateX(-24%) rotate(-15deg);
    }
    45%, 60% {
        opacity: .68;
        transform: translateX(24%) rotate(-15deg);
    }
}

@keyframes lpOrbitSpin {
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

@keyframes lpOrbitTilt {
    0%, 100% {
        transform: translate(-50%, -50%) rotate(13deg) scaleY(.66);
        opacity: .72;
    }
    50% {
        transform: translate(-50%, -50%) rotate(28deg) scaleY(.76);
        opacity: .96;
    }
}

@keyframes lpOrbitDot {
    to {
        transform: rotate(calc(var(--orbit-angle) + 360deg)) translateX(var(--orbit-radius));
    }
}

@keyframes lpOrbitTrace {
    0%, 100% {
        opacity: .16;
        translate: 0 0;
    }
    50% {
        opacity: .82;
        translate: 18px -10px;
    }
}

@keyframes lpBrandFloat {
    0%, 100% {
        transform: translateY(0) scale(1);
    }
    50% {
        transform: translateY(-8px) scale(1.018);
    }
}

.lp-login-card {
    border: 1px solid rgba(37, 160, 226, .14);
    background: #fff;
    border-radius: 22px;
    padding: 34px;
    box-shadow: 0 24px 60px rgba(37, 63, 91, .15);
}

.lp-login-eyebrow {
    display: inline-flex;
    align-items: center;
    border-radius: 99px;
    padding: 5px 10px;
    margin-bottom: 14px;
    background: #eaf6ff;
    color: #1676b5;
    font-size: .78rem;
    font-weight: 700;
}

.lp-login-card h2 {
    margin: 0;
    color: #0f2744;
}

.lp-login-card p {
    margin: 8px 0 0;
    color: #6b7788;
}

.lp-login-card .form-control {
    min-height: 48px;
    border-color: #d9e5f1;
    background-color: #fbfdff;
}

.lp-login-card .form-control:focus {
    border-color: #25a0e2;
    box-shadow: 0 0 0 .2rem rgba(37, 160, 226, .12);
}

.lp-login-card .form-label,
.lp-login-card .form-check-label {
    color: #34435a;
    font-weight: 600;
}

.lp-login-submit {
    min-height: 48px;
    border: 0;
    color: #fff;
    font-weight: 800;
    background: linear-gradient(135deg, var(--lp-brand-primary, #25a0e2), var(--lp-brand-secondary, #6d6ff5));
    box-shadow: 0 16px 34px rgba(37, 160, 226, .24);
}

.lp-login-mark-img {
    padding: 8px;
    background: #fff;
}

.lp-login-mark-img img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.lp-login-submit:hover,
.lp-login-submit:focus {
    color: #fff;
    filter: brightness(.98);
}

.lp-login-rights {
    position: absolute;
    left: 50%;
    bottom: 18px;
    transform: translateX(-50%);
    width: min(100% - 32px, 1180px);
    color: #65758a;
    font-size: .88rem;
    font-weight: 600;
}

.lp-login-rights a {
    color: var(--lp-brand-primary, #25a0e2);
    text-decoration: none;
}

.lp-login-contact-links,
.lp-footer-links {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.lp-footer-links a {
    color: inherit;
    text-decoration: none;
}

.lp-login-rights a:hover,
.lp-login-rights a:focus,
.lp-footer-links a:hover,
.lp-footer-links a:focus {
    text-decoration: underline;
}

@media (max-width: 991.98px) {
    .lp-login-shell {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 78px 18px 28px;
    }

    .lp-login-showcase {
        max-width: 680px;
        margin: 0 auto;
    }

    .lp-auth-grid {
        grid-template-columns: 1fr;
        gap: 28px;
        padding: 30px 18px;
    }

    .lp-auth-brand {
        text-align: center;
        margin-inline: auto;
    }

    .lp-auth-tagline {
        margin-inline: auto;
    }

    .lp-auth-visual {
        display: none;
    }
}

@media (max-width: 575.98px) {
    .lp-login-language {
        top: 14px;
        right: 14px;
    }

    .lp-login-brand-row {
        align-items: flex-start;
    }

    .lp-login-style-panel {
        display: none;
    }

    .lp-login-card {
        padding: 24px;
        border-radius: 18px;
    }

    .lp-auth-panel {
        padding: 24px;
        border-radius: 18px;
    }

    .lp-progress-row {
        grid-template-columns: 1fr;
    }
}
