@font-face {
    font-family: "Avenir Next";
    src: url("/fonts/avenir-next/AvenirNext-Regular.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "Avenir Next";
    src: url("/fonts/avenir-next/AvenirNext-DemiBold.woff2") format("woff2");
    font-style: normal;
    font-weight: 600;
    font-display: swap;
}

@font-face {
    font-family: "Avenir Next";
    src: url("/fonts/avenir-next/AvenirNext-Italic.woff2") format("woff2");
    font-style: italic;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "Avenir Next";
    src: url("/fonts/avenir-next/AvenirNext-Bold.woff2") format("woff2");
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

:root {
    --color-primary: rgb(35, 92, 244);
    --color-primary-hover: #0A369D;
    --color-primary-gradient: linear-gradient(90deg, transparent 0%, #0A369D 100%);
    --color-secondary: #DCE7FF;
    --color-secondary-hover: #C6D8FF;
    --color-secondary-text: #163B8C;
    --color-secondary-shadow: rgba(35, 92, 244, 0.16);
    --color-secondary-shadow-hover: rgba(35, 92, 244, 0.24);
    --color-muted-text: #4B5563;
    --color-light-blue: rgb(35, 92, 244);
    --color-black: rgb(0, 0, 0);
    --color-dark-gray: rgb(27, 27, 27);
    --color-white: rgb(255, 255, 255);
    --color-light-background: #FFFFFF;
    --color-border: #D1D5DB;
    --color-dark-text: #000000;
    --color-dark-background: rgb(27, 27, 27);
    --color-success: #10B981;
    --color-warning: #F59E0B;
    --color-error: #DC2626;
    --color-focus-ring: rgba(35, 92, 244, 0.25);
    --color-primary-soft: rgba(35, 92, 244, 0.10);
    --color-login-background: rgb(0, 0, 0);
    --color-login-background-alt: rgb(27, 27, 27);
    --color-login-background-accent: rgba(35, 92, 244, 0.18);
    --color-login-card-shadow: rgba(0, 0, 0, 0.45);
    --login-logo-gap: 1rem;
    --login-logo-max-width: 420px;
    --login-logo-overlap: 0px;
    --color-app-background: #FFFFFF;
    --color-app-background-alt: #FFFFFF;
    --color-app-background-accent: rgba(35, 92, 244, 0.05);
    --color-app-surface: #FFFFFF;
    --color-app-surface-muted: #F9FAFB;
    --color-app-border: rgba(209, 213, 219, 0.95);
    --color-app-shadow: rgba(0, 0, 0, 0.08);
    --color-app-header-shadow: rgba(0, 0, 0, 0.20);
    --app-shell-max-width: 1200px;
    --app-logo-max-height: 60px;
    --radius-lg: 20px;
    --radius-md: 16px;
    --radius-sm: 12px;
    --radius-xs: 10px;
}

html,
body {
    font-family: "Avenir Next", Arial, sans-serif;
}

html {
    font-size: 14px;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

html {
    position: relative;
    min-height: 100%;
}

body {
    margin-bottom: 60px;
    color: var(--color-dark-text);
    background-image: none;
    background-color: var(--color-app-background);
}

a {
    color: var(--color-primary) !important;
    text-decoration: none !important;
}

a:hover,
a:focus {
    color: var(--color-primary-hover) !important;
    text-decoration: underline !important;
}

.btn:focus,
.btn:active:focus,
button:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus,
textarea:focus,
select:focus,
.k-input:focus,
.k-picker:focus,
.k-input-inner:focus {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(47, 91, 234, 0.12) !important;
}

/* Shared shell and default layout */

header .navbar,
header .navbar.bg-white,
header .navbar-light,
.app-header,
#menu,
#headerRow {
    background: var(--color-black) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    box-shadow: 0 4px 18px var(--color-app-header-shadow) !important;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

header .navbar-light .navbar-brand,
header .navbar-light .navbar-brand:hover,
header .navbar-light .navbar-brand:focus,
header .navbar-light .navbar-nav .nav-link,
header .navbar-light .navbar-nav .nav-link:hover,
header .navbar-light .navbar-nav .nav-link:focus,
header .navbar-light .navbar-nav .nav-link.active,
header .navbar .nav-link.text-dark,
header .navbar .navbar-brand,
header .navbar .text-dark,
#collapse,
#cog,
#parent > a,
#welcome-text,
#menu .text-light,
#headerRow .text-light,
#headerRow h5,
#menu .navbar-brand,
#menu .nav-link {
    color: var(--color-white) !important;
}

header .navbar-light .navbar-toggler {
    border-color: rgba(255, 255, 255, 0.18) !important;
}

header .navbar-light .navbar-toggler:focus {
    box-shadow: 0 0 0 0.2rem rgba(35, 92, 244, 0.16) !important;
}

header .navbar-light .navbar-toggler-icon {
    filter: invert(1);
}

.burger span {
    background: var(--color-white);
}

footer.footer {
    background: var(--color-white);
    color: var(--color-muted-text) !important;
    border-top: 1px solid var(--color-app-border) !important;
}

footer.footer a {
    color: var(--color-primary) !important;
}

.container > main,
.app-content-shell,
#content {
    border-color: transparent;
}

.main-body {
    max-width: var(--app-shell-max-width);
    margin: 0 auto;
}

/* Login Screen */

#loginPage {
    background:
        radial-gradient(circle at top center, var(--color-login-background-accent) 0%, transparent 35%),
        linear-gradient(180deg, var(--color-login-background) 0%, var(--color-login-background-alt) 100%);
    min-height: 100vh;
    margin: 0;
    padding: 0;
}

.login-container {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
}

#login-img-parent {
    max-width: var(--login-logo-max-width);
    margin: 0 auto 1rem;
    line-height: 0;
    position: relative;
    z-index: 2;
}

#login-img-parent > img {
    display: block;
    width: 100%;
    height: auto;
}

.login-body {
    height: auto;
    position: relative;
    max-width: 400px;
    width: 100%;
    gap: var(--login-logo-gap);
    overflow: visible;
    background: transparent;
    border: 0;
    box-shadow: none;
    margin: 0 auto;
}

.login-body .card {
    background-color: rgba(255, 255, 255, 0.98);
    border: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: var(--radius-md);
    box-shadow: 0 20px 45px var(--color-login-card-shadow);
    position: relative;
    z-index: 1;
}

.login-body .input-group-text {
    width: 42px;
    background-color: var(--color-dark-gray);
    color: var(--color-white);
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border: 1px solid var(--color-dark-gray);
    border-right: 0;
}

.login-body .input-group-prepend {
    margin-right: -1px;
}

#loginPage .form-control {
    border: 1px solid var(--color-border);
    background-color: var(--color-white);
    color: var(--color-dark-text);
}

#loginPage .form-control:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 0.2rem rgba(47, 91, 234, 0.12) !important;
}

#loginPage .form-check-label,
#loginPage label,
#loginPage h4,
#loginPage p,
#loginPage span {
    color: var(--color-dark-text);
}

#loginPage .input-group-text {
    color: var(--color-white);
}

/* Shared surfaces */

.card,
.card-box,
.modal-content,
.dropdown-menu,
.k-grid,
.k-popup,
.k-animation-container .k-popup,
.k-window-content,
.app-panel {
    background: var(--color-app-surface);
    border: 1px solid var(--color-app-border);
    box-shadow: 0 12px 24px var(--color-app-shadow);
}

.card-header,
.modal-header,
.dropdown-header,
.app-panel-header {
    background: #FFFFFF;
    border-bottom: 1px solid var(--color-app-border);
    color: var(--color-dark-text);
}

.card-header:first-child,
.modal-header:first-child {
    border-top-left-radius: var(--radius-md);
    border-top-right-radius: var(--radius-md);
}

.modal-footer {
    border-top: 1px solid var(--color-app-border);
}

.table td,
.table th {
    border-color: var(--color-border);
}

.dropdown-item {
    color: var(--color-dark-text);
}

.dropdown-item:hover,
.dropdown-item:focus {
    background: var(--color-primary-soft);
    color: var(--color-primary);
}

/* Buttons */

.btn,
button,
.k-button {
    border-radius: var(--radius-sm);
    font-weight: 600;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.btn-primary,
.btn-info,
.k-button.k-primary,
.k-button-solid-primary,
.login-submit-btn,
.app-header-btn-primary {
    color: var(--color-white) !important;
    background-color: var(--color-primary) !important;
    background-image: var(--color-primary-gradient) !important;
    border-color: var(--color-primary) !important;
    box-shadow: none;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-info:hover,
.btn-info:focus,
.btn-info:active,
.k-button.k-primary:hover,
.k-button.k-primary:focus,
.k-button-solid-primary:hover,
.k-button-solid-primary:focus,
.login-submit-btn:hover,
.login-submit-btn:focus,
.login-submit-btn:active,
.app-header-btn-primary:hover,
.app-header-btn-primary:focus {
    color: var(--color-white) !important;
    background-color: var(--color-primary-hover) !important;
    background-image: linear-gradient(90deg, transparent 0%, #082B7A 100%) !important;
    border-color: var(--color-primary-hover) !important;
    box-shadow: none;
}

.btn-secondary {
    color: var(--color-secondary-text) !important;
    background-color: var(--color-secondary) !important;
    border-color: var(--color-secondary) !important;
    box-shadow: 0 6px 14px var(--color-secondary-shadow);
}

.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:active {
    color: var(--color-secondary-text) !important;
    background-color: var(--color-secondary-hover) !important;
    border-color: var(--color-secondary-hover) !important;
    box-shadow: 0 10px 22px var(--color-secondary-shadow-hover) !important;
    transform: translateY(-1px);
}

.btn-secondary:focus {
    box-shadow: 0 0 0 0.2rem rgba(35, 92, 244, 0.18), 0 10px 22px var(--color-secondary-shadow-hover) !important;
}

.btn-danger,
.app-header-btn-danger {
    color: var(--color-white) !important;
    background-color: var(--color-error) !important;
    border-color: var(--color-error) !important;
}

.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active,
.app-header-btn-danger:hover,
.app-header-btn-danger:focus {
    color: var(--color-white) !important;
    background-color: #B91C1C !important;
    border-color: #B91C1C !important;
}

.btn-info {
    width: 100%;
}

.login-submit-btn,
.app-header-btn,
.manage-nav .nav-link,
.app-header-btn-primary,
.app-header-btn-danger {
    min-height: 42px;
}

.login-submit-btn {
    padding: 0.75rem 1rem;
    border-radius: var(--radius-sm);
}

.app-header-btn {
    padding: 0.65rem 1rem;
    border-radius: var(--radius-sm);
    font-weight: 600;
    border: 1px solid transparent;
    box-shadow: none;
}

/* Form controls */

.form-control,
.custom-select,
.form-control-file,
textarea,
select,
.k-textbox,
.k-input,
.k-picker,
.k-dropdownlist,
.k-combobox,
.k-input-inner {
    background: #FFFFFF;
    color: #000000;
    border-color: var(--color-border);
    border-radius: var(--radius-xs);
}

.form-control::placeholder,
textarea::placeholder {
    color: var(--color-muted-text);
}

.form-control:focus,
textarea:focus,
select:focus {
    border-color: var(--color-primary);
}

.input-group-text {
    background: #FFFFFF;
    color: var(--color-primary);
    border-color: var(--color-border);
}

.form-check-input:checked {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
}

/* Existing components */

.dashboard-card {
    height: 500px;
    overflow-y: auto;
}

.naked-button {
    border: none;
    background: none;
}

.naked-button:hover {
    color: var(--color-primary-hover);
}

.widget-bg-color-icon .bg-icon {
    background: var(--color-primary) !important;
    border: 0 !important;
}

.widget-bg-color-icon .bg-icon i {
    color: var(--color-white) !important;
}

/* User management */

.managebg {
    background:
        radial-gradient(circle at top center, var(--color-app-background-accent) 0%, transparent 35%),
        linear-gradient(180deg, var(--color-app-background) 0%, var(--color-app-background-alt) 100%);
}

.app-shell {
    min-height: 100vh;
}

.app-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    padding: 1rem 1.25rem;
}

.app-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    max-width: none;
    margin: 0;
}

.app-header-brand {
    display: flex;
    align-items: center;
    min-width: 0;
}

.app-logo {
    display: block;
    max-height: var(--app-logo-max-height);
    width: auto;
}

.app-header-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.app-content-shell {
    width: 100%;
}

.app-panel {
    max-width: var(--app-shell-max-width);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.app-panel-header {
    padding: 1.25rem 1.5rem;
}

.app-panel-nav {
    background-color: var(--color-dark-gray);
    border-right: 1px solid rgba(255, 255, 255, 0.08);
    padding: 1.25rem;
}

.app-panel-content {
    padding: 1.5rem;
}

.manage-nav {
    gap: 0.5rem;
}

.manage-nav .nav-link {
    padding: 0.85rem 1rem;
    color: var(--color-white) !important;
    border-radius: var(--radius-sm);
    transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, transform 0.2s ease-in-out;
}

.manage-nav .nav-link:hover {
    background-color: rgba(255, 255, 255, 0.08);
    color: var(--color-white) !important;
    text-decoration: none !important;
    transform: translateX(2px);
}

.manage-nav .nav-link.active {
    background-color: var(--color-primary);
    color: var(--color-white) !important;
    box-shadow: none;
}

/* Mobile */

.nav-item:hover {
    background-color: rgba(255, 255, 255, 0.10);
}

@media (max-width: 991px) {
    .navbar-nav {
        background: var(--color-dark-gray) !important;
        border-left: 1px solid rgba(255, 255, 255, 0.08);
        box-shadow: -12px 0 30px rgba(0, 0, 0, 0.25);
        padding: 0.75rem;
    }

    .navbar-nav .nav-link,
    #navbarNav > ul > li > a.nav-link {
        color: var(--color-white) !important;
    }
}

@media (max-width: 767.98px) {
    .app-header-inner {
        flex-direction: column;
        align-items: stretch;
    }

    .app-header-brand {
        justify-content: center;
    }

    .app-header-actions {
        justify-content: center;
    }

    .app-panel-nav {
        border-right: 0;
        border-bottom: 1px solid var(--color-app-border);
    }

    .app-panel-content {
        padding: 1.25rem;
    }
}

@media (max-width: 575px) {
    #sidebar {
        display: none;
    }
}
