:root {
    --nd-bg-0: #101214;
    --nd-bg-1: #16191d;
    --nd-bg-2: #1b1f24;
    --nd-bg-3: #232830;
    --nd-surface: rgba(24, 27, 31, 0.92);
    --nd-surface-solid: #1b1f24;
    --nd-input: rgba(16, 18, 20, 0.88);
    --nd-border: rgba(233, 224, 210, 0.1);
    --nd-text: #ece7de;
    --nd-text-muted: #a39a8d;
    --nd-accent: #d9b88d;
    --nd-accent-strong: #caa374;
    --nd-accent-text: #171310;
    --nd-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.22);
}

html,
body {
    min-height: 100%;
}

body {
    color: var(--nd-text);
    background-color: var(--nd-bg-0);
    background-image:
        radial-gradient(circle at top left, rgba(180, 137, 87, 0.14), transparent 30%),
        radial-gradient(circle at top right, rgba(91, 110, 125, 0.12), transparent 28%),
        linear-gradient(180deg, var(--nd-bg-0) 0%, var(--nd-bg-1) 100%);
    background-repeat: no-repeat;
    background-attachment: fixed;
}

a {
    color: #f0d6b5;
}

a:hover {
    color: #f7dfc1;
}

.text-muted,
.text-secondary,
.form-text,
.dropdown-item-text {
    color: var(--nd-text-muted) !important;
}

.card,
.modal-content,
.navbar.bg-body-tertiary {
    background: var(--nd-surface) !important;
    border-color: var(--nd-border) !important;
    box-shadow: var(--nd-shadow);
    backdrop-filter: blur(6px);
}

.dropdown-menu {
    background: var(--nd-surface-solid) !important;
    border-color: var(--nd-border) !important;
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.28);
    position: absolute;
    z-index: 1080;
}

.card-header,
.card-footer,
.dropdown-divider,
hr {
    border-color: var(--nd-border) !important;
}

.navbar {
    border-color: var(--nd-border) !important;
    position: relative;
    z-index: 1035;
}

.navbar-brand,
.nav-link,
.dropdown-item,
.btn-close,
.form-label,
.table,
.modal-title,
.alert,
.card,
.card-header,
.card-footer {
    color: var(--nd-text);
}

.nav-link:hover,
.nav-link:focus,
.dropdown-item:hover,
.dropdown-item:focus {
    color: #f0d6b5;
}

.dropdown-item:hover,
.dropdown-item:focus {
    background: rgba(231, 222, 206, 0.08);
}

.bg-body-tertiary,
.bg-body-secondary {
    background-color: rgba(24, 27, 31, 0.92) !important;
}

.btn-primary,
.btn-dark {
    --bs-btn-color: var(--nd-accent-text);
    --bs-btn-bg: var(--nd-accent);
    --bs-btn-border-color: var(--nd-accent);
    --bs-btn-hover-color: var(--nd-accent-text);
    --bs-btn-hover-bg: var(--nd-accent-strong);
    --bs-btn-hover-border-color: var(--nd-accent-strong);
    --bs-btn-focus-shadow-rgb: 217, 184, 141;
    --bs-btn-active-color: var(--nd-accent-text);
    --bs-btn-active-bg: var(--nd-accent-strong);
    --bs-btn-active-border-color: var(--nd-accent-strong);
    --bs-btn-disabled-color: var(--nd-accent-text);
    --bs-btn-disabled-bg: var(--nd-accent);
    --bs-btn-disabled-border-color: var(--nd-accent);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-dark:hover,
.btn-dark:focus {
    background-color: var(--nd-accent-strong);
    border-color: var(--nd-accent-strong);
    color: var(--nd-accent-text);
}

.btn-outline-primary {
    --bs-btn-color: var(--nd-accent);
    --bs-btn-border-color: rgba(217, 184, 141, 0.45);
    --bs-btn-hover-color: var(--nd-accent-text);
    --bs-btn-hover-bg: var(--nd-accent-strong);
    --bs-btn-hover-border-color: var(--nd-accent-strong);
    --bs-btn-focus-shadow-rgb: 217, 184, 141;
    --bs-btn-active-color: var(--nd-accent-text);
    --bs-btn-active-bg: var(--nd-accent-strong);
    --bs-btn-active-border-color: var(--nd-accent-strong);
    --bs-btn-disabled-color: var(--nd-accent);
    --bs-btn-disabled-border-color: rgba(217, 184, 141, 0.3);
    background-color: transparent;
    color: var(--nd-accent);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
    background-color: var(--nd-accent-strong);
    border-color: var(--nd-accent-strong);
    color: var(--nd-accent-text);
}

.btn-outline-secondary,
.btn-secondary {
    --bs-btn-color: var(--nd-text);
    --bs-btn-border-color: rgba(231, 222, 206, 0.22);
    --bs-btn-hover-color: #fff8ef;
    --bs-btn-hover-bg: rgba(231, 222, 206, 0.1);
    --bs-btn-hover-border-color: rgba(231, 222, 206, 0.36);
    --bs-btn-focus-shadow-rgb: 231, 222, 206;
    --bs-btn-active-color: #fff8ef;
    --bs-btn-active-bg: rgba(231, 222, 206, 0.16);
    --bs-btn-active-border-color: rgba(231, 222, 206, 0.4);
    --bs-btn-disabled-color: var(--nd-text-muted);
    --bs-btn-disabled-border-color: rgba(231, 222, 206, 0.16);
    color: var(--nd-text);
    border-color: rgba(231, 222, 206, 0.22);
    background-color: transparent;
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-secondary:hover,
.btn-secondary:focus {
    background-color: rgba(231, 222, 206, 0.1);
    border-color: rgba(231, 222, 206, 0.36);
    color: #fff8ef;
}

.btn-warning {
    --bs-btn-color: #171310;
    --bs-btn-bg: var(--nd-accent);
    --bs-btn-border-color: var(--nd-accent);
    --bs-btn-hover-color: #171310;
    --bs-btn-hover-bg: var(--nd-accent-strong);
    --bs-btn-hover-border-color: var(--nd-accent-strong);
    --bs-btn-focus-shadow-rgb: 217, 184, 141;
    --bs-btn-active-color: #171310;
    --bs-btn-active-bg: var(--nd-accent-strong);
    --bs-btn-active-border-color: var(--nd-accent-strong);
}

.btn-outline-warning,
.btn-outline-info,
.btn-outline-light,
.btn-outline-danger {
    background-color: transparent;
}

.btn-outline-warning {
    --bs-btn-color: var(--nd-accent);
    --bs-btn-border-color: rgba(217, 184, 141, 0.45);
    --bs-btn-hover-color: #171310;
    --bs-btn-hover-bg: var(--nd-accent-strong);
    --bs-btn-hover-border-color: var(--nd-accent-strong);
}

.btn-outline-info {
    --bs-btn-color: #9ec7d8;
    --bs-btn-border-color: rgba(158, 199, 216, 0.35);
    --bs-btn-hover-color: #101214;
    --bs-btn-hover-bg: #9ec7d8;
    --bs-btn-hover-border-color: #9ec7d8;
}

.btn-outline-light {
    --bs-btn-color: var(--nd-text);
    --bs-btn-border-color: rgba(231, 222, 206, 0.28);
    --bs-btn-hover-color: #171310;
    --bs-btn-hover-bg: #ece7de;
    --bs-btn-hover-border-color: #ece7de;
}

.btn-outline-danger {
    --bs-btn-color: #e4a4a4;
    --bs-btn-border-color: rgba(228, 164, 164, 0.28);
    --bs-btn-hover-color: #fff2f2;
    --bs-btn-hover-bg: rgba(156, 55, 55, 0.78);
    --bs-btn-hover-border-color: rgba(228, 164, 164, 0.35);
}

.form-control,
.form-select,
.input-group-text {
    background-color: var(--nd-input);
    border-color: var(--nd-border);
    color: var(--nd-text);
}

.form-control:focus,
.form-select:focus {
    background-color: rgba(16, 18, 20, 0.96);
    border-color: rgba(217, 184, 141, 0.45);
    box-shadow: 0 0 0 0.25rem rgba(217, 184, 141, 0.12);
    color: var(--nd-text);
}

.table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--nd-text);
    --bs-table-border-color: var(--nd-border);
    --bs-table-hover-color: var(--nd-text);
    --bs-table-hover-bg: rgba(231, 222, 206, 0.04);
    --bs-table-striped-color: var(--nd-text);
    --bs-table-striped-bg: rgba(231, 222, 206, 0.03);
    --bs-table-active-color: var(--nd-text);
    --bs-table-active-bg: rgba(231, 222, 206, 0.06);
}

.table thead th,
.table tbody th,
.table thead td,
.table tbody td {
    color: var(--nd-text);
}

.table-dark,
.table-striped,
.table-hover,
.table-bordered {
    --bs-table-bg: transparent;
    --bs-table-color: var(--nd-text);
    --bs-table-border-color: var(--nd-border);
    --bs-table-striped-bg: rgba(231, 222, 206, 0.03);
    --bs-table-striped-color: var(--nd-text);
    --bs-table-hover-bg: rgba(231, 222, 206, 0.04);
    --bs-table-hover-color: var(--nd-text);
}

.table-light,
.table > :not(caption) > * > * {
    background-color: transparent !important;
}

.table-warning {
    --bs-table-bg: rgba(110, 82, 34, 0.34);
    --bs-table-color: #f4e7d3;
    --bs-table-border-color: rgba(217, 184, 141, 0.18);
}

.alert-success {
    background-color: rgba(35, 77, 57, 0.55);
    border-color: rgba(80, 170, 117, 0.25);
}

.alert-danger {
    background-color: rgba(89, 37, 37, 0.58);
    border-color: rgba(198, 90, 90, 0.24);
}

.alert-warning {
    background-color: rgba(110, 82, 34, 0.58);
    border-color: rgba(217, 184, 141, 0.25);
    color: #f4e7d3;
}

.alert-secondary {
    background-color: rgba(46, 52, 60, 0.7);
    border-color: var(--nd-border);
}

.badge.bg-secondary-subtle {
    background: rgba(231, 222, 206, 0.08) !important;
}

.bg-success,
.text-bg-success {
    background-color: rgba(53, 116, 79, 0.86) !important;
    color: #f3fbf6 !important;
}

.bg-secondary,
.text-bg-secondary {
    background-color: rgba(94, 102, 112, 0.78) !important;
    color: #f1ede7 !important;
}

.bg-warning,
.text-bg-warning {
    background-color: rgba(217, 184, 141, 0.9) !important;
    color: #171310 !important;
}

.bg-danger,
.text-bg-danger {
    background-color: rgba(138, 56, 56, 0.86) !important;
    color: #fff3f3 !important;
}

.bg-info,
.text-bg-info {
    background-color: rgba(96, 139, 157, 0.86) !important;
    color: #091216 !important;
}

.text-success {
    color: #92c8a3 !important;
}

.text-warning {
    color: #e7c28d !important;
}

.text-danger {
    color: #e4a4a4 !important;
}

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

.border-warning {
    border-color: rgba(217, 184, 141, 0.35) !important;
}

.border-danger-subtle {
    border-color: rgba(228, 164, 164, 0.2) !important;
}

code,
.font-monospace {
    color: #e7d6bb;
}
