/* Theme tokens. Property desk = :root. System = [data-panel="system"].
   Semantic --nv-* values feed Bootstrap --bs-* so native controls follow the desk.
   Paper and surface stay tinted — never flat white. Chrome is the coloured header. */
:root {
    --nv-ink: #2a1410;
    --nv-ink-soft: #5c3a30;
    --nv-paper: #d8b48c;
    --nv-surface: #efd6b8;
    --nv-line: #c9a06e;
    --nv-accent: #c44520;
    --nv-accent-hover: #9c3418;
    --nv-muted: #7a5648;
    --nv-chrome: #4e1d2c;
    --nv-chrome-ink: #f6ead8;
    --nv-chrome-muted: #d4b6a4;
    --nv-mark: #d4a84b;
    --nv-focus: var(--nv-accent);
    --nv-danger: #b42318;
    --nv-ok: #1a6b48;
    --nv-accent-soft: color-mix(in srgb, var(--nv-accent) 18%, var(--nv-surface));
    --nv-accent-mid: color-mix(in srgb, var(--nv-accent) 28%, var(--nv-surface));
    --nv-row-alt: color-mix(in srgb, var(--nv-paper) 78%, var(--nv-surface));
    --nv-ring: color-mix(in srgb, var(--nv-accent) 30%, transparent);
    --nv-shade: 72, 28, 18;
    --nv-shine: inset 0 1px 0 rgba(255, 255, 255, 0.42);
    --nv-shadow-in: inset 0 1px 2px rgba(var(--nv-shade), 0.08);
    --nv-shadow-btn: var(--nv-shine), 0 1px 2px rgba(var(--nv-shade), 0.16), 0 4px 10px rgba(var(--nv-shade), 0.1);
    --nv-shadow-sm: 0 1px 2px rgba(var(--nv-shade), 0.08);
    --nv-shadow-md: 0 4px 8px rgba(var(--nv-shade), 0.1), 0 1px 3px rgba(var(--nv-shade), 0.08);
    --nv-shadow-lg: 0 18px 40px rgba(var(--nv-shade), 0.2), 0 2px 8px rgba(var(--nv-shade), 0.1);
    --nv-elev: 0 0 0 1px rgba(var(--nv-shade), 0.06), 0 1px 2px rgba(var(--nv-shade), 0.06), 0 10px 22px rgba(var(--nv-shade), 0.08);
    --nv-radius: 0.45rem;
    --nv-radius-sm: 0.32rem;
    --nv-radius-pill: 999px;
    --nv-control-h: 2rem;
    --nv-font: "Plus Jakarta Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
    --nv-ease: ease;
    --nv-pad: max(1rem, env(safe-area-inset-left, 0px));
    --nv-pad-end: max(1rem, env(safe-area-inset-right, 0px));

    --bs-primary: var(--nv-accent);
    --bs-primary-rgb: 196, 69, 32;
    --bs-success: var(--nv-ok);
    --bs-danger: var(--nv-danger);
    --bs-body-color: var(--nv-ink);
    --bs-body-bg: var(--nv-paper);
    --bs-secondary-color: var(--nv-muted);
    --bs-secondary-bg: var(--nv-surface);
    --bs-tertiary-bg: var(--nv-paper);
    --bs-emphasis-color: var(--nv-ink);
    --bs-border-color: var(--nv-line);
    --bs-border-radius: var(--nv-radius);
    --bs-border-radius-sm: var(--nv-radius-sm);
    --bs-border-radius-lg: calc(var(--nv-radius) + 0.2rem);
    --bs-link-color: var(--nv-accent);
    --bs-link-hover-color: var(--nv-accent-hover);
    --bs-focus-ring-color: var(--nv-ring);
    --bs-box-shadow-sm: var(--nv-shadow-sm);
    --bs-box-shadow: var(--nv-shadow-md);
    --bs-box-shadow-lg: var(--nv-shadow-lg);
}

[data-panel="system"] {
    --nv-ink: #0c1c2e;
    --nv-ink-soft: #3a5368;
    --nv-paper: #96b4cc;
    --nv-surface: #c5d8ea;
    --nv-line: #7fa0bc;
    --nv-accent: #0f8a9e;
    --nv-accent-hover: #0b6c7c;
    --nv-muted: #3e5a70;
    --nv-chrome: #0c1c2e;
    --nv-chrome-ink: #e4eef6;
    --nv-chrome-muted: #9db8cc;
    --nv-mark: #d4a84b;
    --nv-focus: var(--nv-accent);
    --nv-ok: #1a6b48;
    --nv-shade: 12, 32, 52;
    --bs-primary-rgb: 15, 138, 158;
}

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

html {
    overflow-x: clip;
    overflow-y: scroll;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    color-scheme: light;
}

.fade,
.modal.fade .modal-dialog,
.modal-backdrop,
.collapsing,
.toast.fade {
    transition: none !important;
}

.modal.fade .modal-dialog {
    transform: none;
}

.modal-backdrop {
    --bs-backdrop-bg: rgb(var(--nv-shade));
    --bs-backdrop-opacity: 0.46;
}

body.modal-open {
    padding-right: 0 !important;
    overflow: hidden;
}

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

::selection {
    background: var(--nv-accent-mid);
    color: var(--nv-ink);
}

body.nv-body {
    margin: 0;
    font-family: var(--nv-font);
    font-size: 0.8125rem;
    line-height: 1.45;
    background-color: var(--nv-paper);
    background-image:
        radial-gradient(44rem 22rem at 0% -10%, color-mix(in srgb, var(--nv-accent) 38%, transparent), transparent 72%),
        radial-gradient(38rem 18rem at 100% 0%, color-mix(in srgb, var(--nv-chrome) 30%, transparent), transparent 68%),
        radial-gradient(28rem 14rem at 70% 100%, color-mix(in srgb, var(--nv-mark) 16%, transparent), transparent 70%),
        linear-gradient(180deg, color-mix(in srgb, var(--nv-chrome) 16%, var(--nv-paper)), var(--nv-paper) 18rem);
    color: var(--nv-ink);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.nv-body .form-label,
.nv-body legend.form-label {
    margin-bottom: 0.28rem;
    font-size: 0.6875rem;
    font-weight: 650;
    letter-spacing: 0.04em;
    color: var(--nv-ink-soft);
}

.nv-body [data-bs-toggle="tooltip"] {
    cursor: help;
}

.nv-body .form-label[data-bs-toggle="tooltip"],
.nv-body legend.form-label[data-bs-toggle="tooltip"],
.nv-body .form-check-label[data-bs-toggle="tooltip"],
.nv-body .nv-inv-field__label[data-bs-toggle="tooltip"],
.nv-body .nv-inv-key[data-bs-toggle="tooltip"],
.nv-body .nv-inv-apply__col[data-bs-toggle="tooltip"],
.nv-body th[data-bs-toggle="tooltip"],
.nv-body dt[data-bs-toggle="tooltip"],
.nv-body .nv-section > h3.h6[data-bs-toggle="tooltip"] {
    text-decoration: underline dotted;
    text-underline-offset: 0.18em;
    text-decoration-thickness: from-font;
}

.nv-body .form-control,
.nv-body .form-select {
    min-height: var(--nv-control-h);
    max-width: 100%;
    padding: 0.28rem 0.65rem;
    border: 1px solid color-mix(in srgb, var(--nv-line) 70%, rgba(var(--nv-shade), 0.18));
    border-radius: var(--nv-radius-sm);
    background-color: color-mix(in srgb, var(--nv-paper) 40%, var(--nv-surface));
    color: var(--nv-ink);
    font-size: 0.8125rem;
    box-shadow: var(--nv-shadow-in);
}

.nv-body textarea.form-control {
    min-height: 6.5rem;
    padding-top: 0.5rem;
}

.nv-body textarea.nv-json {
    min-height: 12rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.8125rem;
    line-height: 1.45;
    white-space: pre;
}

.nv-body .form-control::placeholder {
    color: color-mix(in srgb, var(--nv-muted) 78%, var(--nv-surface));
}

.nv-body .form-control:hover,
.nv-body .form-select:hover {
    border-color: color-mix(in srgb, var(--nv-ink) 28%, var(--nv-line));
    background-color: var(--nv-surface);
}

.nv-body .form-control:focus,
.nv-body .form-select:focus {
    border-color: var(--nv-accent);
    background-color: var(--nv-surface);
    color: var(--nv-ink);
    box-shadow: 0 0 0 3px var(--nv-ring), var(--nv-shadow-in);
}

.nv-body .form-control:disabled,
.nv-body .form-select:disabled {
    background: color-mix(in srgb, var(--nv-paper) 70%, var(--nv-surface));
    color: var(--nv-muted);
    opacity: 1;
}

.nv-body .form-control-sm,
.nv-body .form-select-sm {
    min-height: 1.9rem;
    padding: 0.22rem 0.55rem;
    font-size: 0.8125rem;
}

.nv-body .form-select {
    padding-right: 2.3rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%236a635a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.7rem center;
    background-size: 0.9rem;
}

.nv-body input[type="search"] {
    padding-inline-start: 2.4rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%236a635a' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='7' cy='7' r='4.4'/%3E%3Cpath d='M10.6 10.6 14 14'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: 0.8rem 50%;
    background-size: 0.95rem;
}

.nv-body input[type="search"].form-control-sm {
    padding-inline-start: 2.1rem;
    background-position: 0.6rem 50%;
    background-size: 0.85rem;
}

.nv-body .form-check {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    min-height: 1.5rem;
    margin: 0;
    padding: 0.2rem 0;
}

.nv-body .form-check-input {
    flex: 0 0 auto;
    width: 1em;
    height: 1em;
    margin: 0.15em 0 0;
    float: none;
    border-color: color-mix(in srgb, var(--nv-line) 60%, rgba(var(--nv-shade), 0.2));
    cursor: pointer;
    accent-color: var(--nv-accent);
    box-shadow: var(--nv-shadow-in);
}

.nv-body .form-check-input:checked {
    background-color: var(--nv-accent);
    border-color: var(--nv-accent);
}

.nv-body .form-check-input:focus {
    border-color: var(--nv-accent);
    box-shadow: 0 0 0 0.2rem var(--nv-ring);
}

.nv-body .form-check-label {
    font-size: 0.8125rem;
    color: var(--nv-ink);
}

.nv-body .btn {
    --bs-btn-padding-y: 0.32rem;
    --bs-btn-padding-x: 0.75rem;
    --bs-btn-font-weight: 650;
    --bs-btn-border-radius: var(--nv-radius-sm);
    --bs-btn-font-size: 0.75rem;
    letter-spacing: 0.02em;
    box-shadow: var(--nv-shadow-sm);
}

.nv-body .btn .fa-solid,
.nv-body .btn .fa-brands,
.nv-photos-add .fa-solid,
.nv-panel-switch .fa-solid,
.nv-dropdown-item .fa-solid,
.nv-body .dropdown-item .fa-solid {
    margin-inline-end: 0.4em;
    font-size: 0.85em;
}

.nv-gate-panel a .fa-solid {
    margin-inline-end: 0.35em;
}

.nv-body .btn .fa-solid.nv-icon-end {
    margin-inline-end: 0;
    margin-inline-start: 0.4em;
}

.nv-photo-x .fa-solid,
.nv-tag [data-nv-tag-remove] .fa-solid,
.nv-icon-btn .fa-solid,
.nv-menu .fa-solid {
    margin: 0;
}

.nv-icon-btn .fa-solid,
.nv-menu .fa-solid {
    font-size: 0.9rem;
}

.nv-photo-x .fa-solid,
.nv-tag [data-nv-tag-remove] .fa-solid,
.nv-icon-btn .fa-solid,
.nv-menu .fa-solid {
    margin: 0;
}

.nv-body .btn-sm {
    --bs-btn-padding-y: 0.22rem;
    --bs-btn-padding-x: 0.55rem;
    --bs-btn-font-size: 0.75rem;
}

.nv-body .btn-dark {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--nv-accent);
    --bs-btn-border-color: color-mix(in srgb, var(--nv-accent) 72%, var(--nv-ink));
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--nv-accent-hover);
    --bs-btn-hover-border-color: var(--nv-accent-hover);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--nv-accent-hover);
    --bs-btn-active-border-color: var(--nv-accent-hover);
    --bs-btn-disabled-bg: color-mix(in srgb, var(--nv-ink) 45%, var(--nv-line));
    --bs-btn-disabled-border-color: transparent;
    box-shadow: var(--nv-shadow-btn);
}

.nv-body .btn-dark:hover,
.nv-body .btn-dark:focus-visible,
.nv-body .btn-dark:active {
    color: #fff;
    background-color: var(--nv-accent-hover);
    border-color: var(--nv-accent-hover);
    box-shadow: var(--nv-shine), var(--nv-shadow-md);
}

.nv-body .btn-outline-dark {
    --bs-btn-color: var(--nv-ink);
    --bs-btn-border-color: color-mix(in srgb, var(--nv-line) 60%, rgba(var(--nv-shade), 0.2));
    --bs-btn-hover-bg: var(--nv-ink);
    --bs-btn-hover-border-color: var(--nv-ink);
    --bs-btn-hover-color: var(--nv-chrome-ink);
    --bs-btn-active-bg: var(--nv-ink);
    --bs-btn-active-border-color: var(--nv-ink);
    --bs-btn-active-color: var(--nv-chrome-ink);
    background-color: var(--nv-surface);
    box-shadow: var(--nv-shine), var(--nv-shadow-sm);
}

.nv-body .btn-outline-dark:hover,
.nv-body .btn-outline-dark:focus-visible,
.nv-body .btn-outline-dark:active {
    color: var(--nv-chrome-ink);
    background-color: var(--nv-ink);
    border-color: var(--nv-ink);
}

.nv-body .btn:disabled,
.nv-body .btn.disabled {
    transform: none;
    box-shadow: none;
}

.nv-body a {
    color: var(--nv-accent);
    text-underline-offset: 0.14em;
}

.nv-body a:hover:not(.btn) {
    color: var(--nv-accent-hover);
}

.nv-body a.btn {
    color: var(--bs-btn-color);
}

.nv-body a.btn:hover,
.nv-body a.btn:focus {
    color: var(--bs-btn-hover-color);
}

.nv-body .card {
    min-width: 0;
    max-width: 100%;
    background: var(--nv-surface);
    border: 1px solid color-mix(in srgb, var(--nv-line) 80%, rgba(var(--nv-shade), 0.12));
    border-top: 3px solid var(--nv-accent);
    border-radius: var(--nv-radius);
    box-shadow: var(--nv-elev);
}

.nv-body .card-body {
    padding: 0.9rem 1rem;
}

.nv-body .dropdown-menu {
    padding: 0.3rem;
    border: 1px solid color-mix(in srgb, var(--nv-line) 70%, rgba(var(--nv-shade), 0.14));
    border-radius: var(--nv-radius-sm);
    background: var(--nv-surface);
    box-shadow: var(--nv-shadow-lg);
}

.nv-body .dropdown-item {
    border-radius: var(--nv-radius-sm);
    padding: 0.35rem 0.55rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--nv-ink);
}

.nv-body .dropdown-item:hover,
.nv-body .dropdown-item:focus {
    background: var(--nv-accent-soft);
    color: var(--nv-ink);
}

.nv-body .dropdown-item.active,
.nv-body .dropdown-item:active {
    background: var(--nv-ink);
    color: var(--nv-surface);
}

.nv-body .dropdown-divider {
    margin: 0.4rem 0.25rem;
    border-top-color: var(--nv-line);
}

.nv-body .btn-close {
    opacity: 0.55;
    filter: none;
}

.nv-body .btn-close:hover {
    opacity: 0.9;
}

.nv-kicker {
    margin: 0 0 0.35rem;
    font-size: 0.6875rem;
    font-weight: 650;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--nv-accent);
}

.nv-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: var(--nv-chrome);
    color: var(--nv-chrome-ink);
    border-bottom: 0;
    box-shadow: inset 0 1px 0 color-mix(in srgb, var(--nv-chrome-ink) 16%, transparent), inset 0 -2px 0 var(--nv-mark), 0 14px 36px rgba(var(--nv-shade), 0.28);
    padding-top: env(safe-area-inset-top, 0px);
}

.nv-header-bar {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.4rem;
    min-height: 3rem;
    min-width: 0;
    padding: 0.3rem var(--nv-pad-end) 0.3rem var(--nv-pad);
}

.nv-header-spacer {
    flex: 1 1 auto;
    min-width: 0.25rem;
}

.nv-switcher {
    min-width: 0;
    flex: 1 1 7rem;
}

.nv-context {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    padding: 0.2rem 0.15rem;
    color: var(--nv-chrome-ink);
}

.nv-switcher-btn {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.05rem;
    width: 100%;
    max-width: 100%;
    padding: 0.28rem 0.45rem;
    border: 0;
    border-radius: var(--nv-radius-sm);
    background: transparent;
    text-align: left;
    color: var(--nv-chrome-ink);
}

.nv-switcher-btn:hover,
.nv-switcher-btn[aria-expanded="true"] {
    background: color-mix(in srgb, var(--nv-chrome-ink) 12%, transparent);
}

.nv-switcher-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.625rem;
    font-weight: 650;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--nv-chrome-muted);
}

.nv-switcher-kicker .fa-solid {
    letter-spacing: 0;
    font-size: 0.85em;
}

.nv-switcher-name {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.875rem;
    font-weight: 650;
    letter-spacing: -0.02em;
    color: var(--nv-chrome-ink);
}

.nv-switcher-menu {
    width: min(18rem, calc(100vw - 1.5rem));
    min-width: 0;
    padding: 0.65rem;
    border: 1px solid var(--nv-line);
    border-radius: var(--nv-radius);
}

.nv-switcher-search {
    margin-bottom: 0.5rem;
}

.nv-switcher-list {
    max-height: 16rem;
    overflow: auto;
}

.nv-switcher-list .dropdown-item {
    border-radius: 0.4rem;
    white-space: normal;
}

.nv-pick-field {
    position: relative;
}

.nv-body input.nv-pick-search {
    padding-inline-start: 2.4rem;
    padding-inline-end: 2.3rem;
    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%236a635a' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='7' cy='7' r='4.4'/%3E%3Cpath d='M10.6 10.6 14 14'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%236a635a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");
    background-position: 0.8rem 50%, right 0.7rem center;
    background-size: 0.95rem, 0.9rem;
    background-repeat: no-repeat;
}

.nv-body input.nv-pick-search::-webkit-search-decoration,
.nv-body input.nv-pick-search::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
}

.nv-pick-menu {
    position: absolute;
    z-index: 20;
    top: calc(100% + 0.3rem);
    right: 0;
    left: 0;
    max-height: 16rem;
    overflow: auto;
    padding: 0.4rem;
    border: 1px solid var(--nv-line);
    border-radius: var(--nv-radius);
    background: var(--nv-surface);
    box-shadow: var(--nv-shadow-md);
}

.nv-pick-menu .dropdown-item {
    border-radius: 0.4rem;
    overflow: hidden;
    text-align: start;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nv-pick-menu .dropdown-item.active,
.nv-pick-menu .dropdown-item:hover {
    background: var(--nv-accent-soft);
    color: var(--nv-ink);
}

.nv-panel-switch {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: 0;
    padding: 0.14rem;
    border: 1px solid color-mix(in srgb, var(--nv-chrome-ink) 18%, transparent);
    border-radius: var(--nv-radius-pill);
    background: color-mix(in srgb, var(--nv-chrome-ink) 8%, transparent);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.18);
}

.nv-panel-switch form {
    margin: 0;
}

.nv-panel-switch--menu {
    margin: 0.5rem var(--nv-pad) 0.15rem;
    align-self: flex-start;
}

.nv-body .nv-panel-switch a,
.nv-body .nv-panel-switch button {
    display: inline-flex;
    align-items: center;
    padding: 0.26rem 0.75rem;
    border: 0;
    border-radius: var(--nv-radius-pill);
    background: transparent;
    color: var(--nv-chrome-muted);
    text-decoration: none;
    font-size: 0.75rem;
    font-weight: 650;
    letter-spacing: 0.01em;
}

.nv-body .nv-panel-switch a.is-on,
.nv-body .nv-panel-switch button.is-on {
    background: var(--nv-surface);
    color: var(--nv-ink);
    box-shadow: var(--nv-shine), 0 1px 2px rgba(var(--nv-shade), 0.18);
}

.nv-nav {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    padding: 0.25rem var(--nv-pad) max(0.7rem, env(safe-area-inset-bottom, 0px));
    border-top: 1px solid color-mix(in srgb, var(--nv-chrome-ink) 12%, transparent);
}

.nv-body a.nv-nav-main,
.nv-nav-main {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 2.15rem;
    padding: 0 0.55rem;
    border: 0;
    border-radius: var(--nv-radius-sm);
    background: transparent;
    color: var(--nv-chrome-muted);
    text-decoration: none;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0;
}

.nv-nav-main .fa-solid,
.nv-nav-sub .fa-solid {
    font-size: 0.78em;
    opacity: 0.88;
}

.nv-body a.nv-nav-main:hover {
    color: var(--nv-chrome-ink);
    background: color-mix(in srgb, var(--nv-chrome-ink) 10%, transparent);
}

.nv-body a.nv-nav-main.is-on {
    color: var(--nv-chrome-ink);
    background: color-mix(in srgb, var(--nv-chrome-ink) 12%, transparent);
}

.nv-nav-group {
    display: flex;
    flex-direction: column;
}

.nv-nav-sub {
    display: flex;
    flex-direction: column;
    padding: 0.05rem 0 0.4rem 0.7rem;
}

.nv-body .nv-nav-sub a {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 1.9rem;
    padding: 0.18rem 0.55rem;
    border-radius: var(--nv-radius-sm);
    color: var(--nv-chrome-muted);
    text-decoration: none;
    font-size: 0.8125rem;
    font-weight: 500;
}

.nv-body .nv-nav-sub a:hover {
    color: var(--nv-chrome-ink);
    background: color-mix(in srgb, var(--nv-chrome-ink) 10%, transparent);
}

.nv-body .nv-nav-sub a.is-on {
    color: var(--nv-chrome-ink);
    background: color-mix(in srgb, var(--nv-mark) 22%, transparent);
    font-weight: 650;
}

@media (min-width: 992px) {
    .nv-nav {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: stretch;
        gap: 0.1rem 0.15rem;
        padding: 0 1.5rem;
    }

    .nv-nav-group {
        display: contents;
    }

    .nv-body a.nv-nav-main {
        order: 1;
        border-bottom: 2px solid transparent;
        border-radius: 0.5rem 0.5rem 0 0;
    }

    .nv-body a.nv-nav-main.is-on {
        border-bottom-color: var(--nv-mark);
        background: color-mix(in srgb, var(--nv-chrome-ink) 14%, transparent);
        box-shadow: none;
        color: var(--nv-chrome-ink);
    }

    .nv-nav-sub {
        display: none;
        order: 2;
        flex: 1 0 100%;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 0.15rem;
        padding: 0.25rem 0 0.35rem;
        border-top: 1px solid color-mix(in srgb, var(--nv-chrome-ink) 12%, transparent);
    }

    .nv-nav-group.is-on .nv-nav-sub {
        display: flex;
    }

    .nv-body .nv-nav-sub a {
        min-height: 1.95rem;
        display: inline-flex;
        align-items: center;
        border-bottom: 2px solid transparent;
    }

    .nv-body .nv-nav-sub a.is-on {
        border-bottom-color: transparent;
        color: var(--nv-chrome);
        background: var(--nv-surface);
        box-shadow: var(--nv-shine), var(--nv-shadow-sm);
    }
}

.nv-menu {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    border: 1px solid color-mix(in srgb, var(--nv-chrome-ink) 20%, transparent);
    border-radius: var(--nv-radius-sm);
    background: color-mix(in srgb, var(--nv-chrome-ink) 8%, transparent);
    color: var(--nv-chrome-ink);
    box-shadow: none;
}

.nv-menu:hover {
    background: color-mix(in srgb, var(--nv-chrome-ink) 16%, transparent);
    border-color: color-mix(in srgb, var(--nv-mark) 50%, var(--nv-chrome-ink));
}

.nv-header-end {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: 0.4rem;
}

.nv-icon-btn,
.nv-avatar {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid color-mix(in srgb, var(--nv-chrome-ink) 20%, transparent);
    background: color-mix(in srgb, var(--nv-chrome-ink) 8%, transparent);
    color: var(--nv-chrome-ink);
    box-shadow: none;
}

.nv-icon-btn:hover,
.nv-avatar:hover {
    background: color-mix(in srgb, var(--nv-chrome-ink) 16%, transparent);
    border-color: color-mix(in srgb, var(--nv-mark) 50%, var(--nv-chrome-ink));
}

.nv-icon-btn {
    width: 2rem;
    height: 2rem;
    border-radius: var(--nv-radius-pill);
}

.nv-avatar {
    width: 2rem;
    height: 2rem;
    border-radius: var(--nv-radius-pill);
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.nv-icon-dot {
    position: absolute;
    top: 0.3rem;
    right: 0.35rem;
    width: 0.42rem;
    height: 0.42rem;
    border-radius: var(--nv-radius-pill);
    background: var(--nv-mark);
    box-shadow: 0 0 0 2px var(--nv-chrome);
}

.nv-notify,
.nv-account-menu {
    width: min(22rem, calc(100vw - 1.5rem));
    min-width: 0;
    padding: 0.65rem 0.4rem;
    border: 1px solid var(--nv-line);
    border-radius: var(--nv-radius);
}

.nv-notify {
    max-height: min(24rem, 70vh);
    overflow: hidden;
}

.nv-notify-list {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    max-height: min(18rem, 55vh);
    overflow: auto;
}

.nv-drop-title,
.nv-account-meta {
    padding: 0.15rem 0.7rem 0.45rem;
}

.nv-drop-title {
    margin: 0;
    font-size: 0.6875rem;
    font-weight: 650;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--nv-muted);
}

.nv-account-meta strong,
.nv-account-meta span {
    display: block;
}

.nv-account-meta span,
.nv-notify-empty {
    color: var(--nv-muted);
    font-size: 0.86rem;
}

.nv-notify-empty,
.nv-notify-item {
    padding: 0.4rem 0.7rem;
    border-radius: 0.45rem;
}

.nv-notify-item {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.45rem 0.65rem;
    color: var(--nv-ink);
    text-decoration: none;
}

.nv-notify-item > i {
    margin-top: 0.15rem;
    color: var(--nv-muted);
}

.nv-notify-item strong,
.nv-notify-item span span {
    display: block;
}

.nv-notify-item strong {
    font-size: 0.86rem;
    font-weight: 650;
}

.nv-notify-item span span {
    color: var(--nv-muted);
    font-size: 0.75rem;
}

.nv-notify-item--new {
    background: color-mix(in srgb, var(--nv-accent) 12%, transparent);
}

a.nv-notify-item:hover {
    background: color-mix(in srgb, var(--nv-ink) 6%, transparent);
    color: var(--nv-ink);
}

.nv-gate-main,
.nv-main {
    min-width: 0;
    padding: 1rem var(--nv-pad-end) max(2rem, env(safe-area-inset-bottom, 0px)) var(--nv-pad);
}

.nv-gate-main {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: calc(100dvh - 3.5rem - env(safe-area-inset-top, 0px));
    padding-top: 2.25rem;
}

.nv-gate-panel {
    width: 100%;
    max-width: min(23rem, 100%);
    min-width: 0;
    padding: 1.2rem 1.15rem 1.1rem;
    background: var(--nv-surface);
    border: 1px solid color-mix(in srgb, var(--nv-line) 75%, rgba(var(--nv-shade), 0.12));
    border-top: 3px solid var(--nv-accent);
    border-radius: var(--nv-radius);
    box-shadow: var(--nv-elev), var(--nv-shadow-md);
}

.nv-gate-panel--wide {
    max-width: min(36rem, 100%);
}

.nv-gate-panel .d-sm-flex {
    flex-wrap: wrap;
}

.nv-gate-panel .d-sm-flex > form {
    flex: 1 1 10rem;
    min-width: 0;
}

.nv-gate-panel .h3 {
    letter-spacing: -0.03em;
    font-weight: 650;
}

.nv-gate-panel--pick {
    text-align: center;
}

.nv-gate-panel--pick .nv-pick-search {
    text-align: start;
}

.nv-page {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.85rem;
    margin-bottom: 1rem;
}

.nv-page .nv-kicker {
    flex: 1 0 100%;
}

.nv-page h1 {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    font-size: clamp(1.05rem, 2.8vw, 1.25rem);
    font-weight: 650;
    letter-spacing: -0.03em;
}

.nv-page p {
    margin: 0.35rem 0 0;
    color: var(--nv-muted);
}

.nv-metrics {
    display: grid;
    gap: 0.65rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nv-body .nv-metric {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 0.4rem;
    min-height: 5.6rem;
    padding: 0.9rem 1rem;
    border: 1px solid color-mix(in srgb, var(--nv-line) 75%, rgba(var(--nv-shade), 0.12));
    border-top: 3px solid var(--nv-accent);
    border-radius: var(--nv-radius);
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--nv-accent) 20%, var(--nv-surface)), var(--nv-surface) 48%);
    color: var(--nv-ink);
    box-shadow: var(--nv-elev);
    text-decoration: none;
}

.nv-metric span {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--nv-muted);
    font-size: 0.75rem;
    font-weight: 650;
    letter-spacing: 0.01em;
}

.nv-metric span .fa-solid {
    color: var(--nv-accent);
    font-size: 0.9em;
}

.nv-metric strong {
    font-size: clamp(1.35rem, 2.6vw, 1.8rem);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}

.nv-home-grid {
    display: grid;
    gap: 0.55rem;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 12.5rem), 1fr));
}

.nv-body .nv-home-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.65rem 0.8rem;
    border: 1px solid color-mix(in srgb, var(--nv-line) 75%, rgba(var(--nv-shade), 0.12));
    border-radius: var(--nv-radius);
    background:
        linear-gradient(90deg, color-mix(in srgb, var(--nv-accent) 16%, var(--nv-surface)), var(--nv-surface) 42%);
    color: var(--nv-ink);
    box-shadow: var(--nv-elev);
}

.nv-body a.nv-home-card {
    text-decoration: none;
    color: var(--nv-ink);
}

.nv-body a.nv-metric {
    text-decoration: none;
    color: var(--nv-ink);
}

.nv-stats {
    margin-bottom: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 768px) {
    .nv-stats {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (hover: hover) and (pointer: fine) {
    .nv-body a.nv-home-card:hover,
    .nv-body a.nv-metric:hover {
        border-color: color-mix(in srgb, var(--nv-accent) 45%, var(--nv-line));
        color: var(--nv-ink);
        box-shadow: var(--nv-shadow-md), 0 0 0 1px color-mix(in srgb, var(--nv-accent) 22%, transparent);
    }
}

.nv-home-card strong {
    font-weight: 650;
    letter-spacing: -0.02em;
}

.nv-body a.nv-home-card::after {
    content: "";
    flex: 0 0 auto;
    width: 0.38rem;
    height: 0.38rem;
    border-right: 1.5px solid var(--nv-muted);
    border-top: 1.5px solid var(--nv-muted);
    transform: rotate(45deg);
    opacity: 0.45;
}

.nv-home-card span {
    color: var(--nv-muted);
    font-size: 0.9rem;
}

.nv-list {
    width: 100%;
    min-width: 0;
    margin-bottom: 1.5rem;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--nv-line) 75%, rgba(var(--nv-shade), 0.12));
    border-top: 3px solid var(--nv-accent);
    border-radius: var(--nv-radius);
    background: var(--nv-surface);
    box-shadow: var(--nv-elev);
}

.nv-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.85rem;
}

.nv-list > .nv-toolbar {
    margin: 0;
    padding: 0.5rem 0.65rem;
    border-bottom: 1px solid color-mix(in srgb, var(--nv-line) 85%, transparent);
    background: linear-gradient(180deg, color-mix(in srgb, var(--nv-accent) 16%, var(--nv-surface)), color-mix(in srgb, var(--nv-paper) 32%, var(--nv-surface)));
    box-shadow: inset 0 2px 0 var(--nv-mark), inset 0 -1px 0 rgba(255, 255, 255, 0.4);
}

.nv-toolbar .form-control,
.nv-toolbar .form-select {
    min-width: 0;
}

.nv-search,
.nv-filter,
.nv-sort,
.nv-page-size {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
    min-inline-size: 0;
    margin: 0;
}

.nv-filter {
    position: relative;
    flex-wrap: nowrap;
    border: 0;
    padding: 0;
}

.nv-filter-toggle {
    display: flex;
    align-items: center;
    min-width: 8rem;
    max-width: 16rem;
    padding-inline-end: 2.1rem;
    text-align: start;
    cursor: pointer;
    appearance: none;
}

.nv-filter-toggle [data-nv-filter-summary] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nv-filter .dropdown-menu {
    z-index: 1040;
    min-width: 14rem;
    max-height: 16rem;
    overflow: auto;
    padding: 0.35rem;
}

.nv-filter-pick {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    cursor: pointer;
}

.nv-filter-pick .form-check-input {
    margin: 0;
    flex: 0 0 auto;
}

.nv-filter-pick:has(input:checked) {
    background: var(--nv-accent-soft);
    color: var(--nv-ink);
}

.nv-search .fa-solid,
.nv-filter .fa-solid,
.nv-sort .fa-solid,
.nv-page-size .fa-solid {
    flex: 0 0 auto;
    color: var(--nv-muted);
}

.nv-search {
    flex: 1 1 12rem;
}

.nv-search .form-control {
    flex: 1 1 auto;
    width: auto;
    min-width: 8rem;
}

.nv-filter,
.nv-sort,
.nv-page-size {
    flex: 0 1 auto;
}

.nv-toolbar .form-select,
.nv-page-size .form-select {
    flex: 0 1 auto;
    width: auto;
    min-width: 6.5rem;
}

.nv-toolbar .btn.nv-export {
    flex: 0 0 auto;
    margin-left: auto;
}

.nv-narrow {
    width: 100%;
    max-width: 36rem;
}

.nv-rows {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.nv-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.85rem;
    width: 100%;
    margin: 0;
    padding: 0.42rem 0.75rem;
    border: 0;
    border-bottom: 1px solid var(--nv-line);
    border-radius: 0;
    background: transparent;
}

.nv-row--alt {
    background: var(--nv-row-alt);
}

.nv-row:last-child {
    border-bottom: 0;
}

label.nv-row {
    cursor: pointer;
}

.nv-body a.nv-row:hover,
label.nv-row:hover {
    background: color-mix(in srgb, var(--nv-accent) 7%, var(--nv-surface));
}

.nv-body a.nv-row.nv-row--alt:hover,
label.nv-row.nv-row--alt:hover {
    background: color-mix(in srgb, var(--nv-accent) 10%, var(--nv-row-alt));
}

.nv-row:has(> input[type="radio"]:checked),
.nv-row:has(> input[type="checkbox"]:checked),
.nv-row--on,
.nv-row--alt.nv-row--on {
    background: var(--nv-accent-soft);
    box-shadow: inset 2px 0 0 var(--nv-accent);
}

.nv-row-id {
    flex: 1 1 11rem;
    min-width: 0;
}

.nv-row-id strong,
.nv-row-id .nv-row-name {
    display: block;
    font-weight: 650;
    letter-spacing: -0.02em;
}

.nv-row-id span {
    color: var(--nv-muted);
    font-size: 0.75rem;
    overflow-wrap: anywhere;
}

.nv-body a.nv-row,
.nv-body a.nv-row-id {
    color: var(--nv-ink);
    text-decoration: none;
}

.nv-body a.nv-row {
    cursor: pointer;
}

.nv-row > input[type="radio"],
.nv-row > input[type="checkbox"] {
    flex: 0 0 auto;
    margin: 0;
    accent-color: var(--nv-accent);
}

.nv-row > input[type="checkbox"]:disabled,
.nv-row > input[type="radio"]:disabled {
    accent-color: var(--nv-muted);
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
}

.nv-body a.nv-row:hover,
.nv-body a.nv-row-id:hover {
    color: var(--nv-ink);
}

.nv-body div.nv-row:has(> a.nv-row-id):hover {
    background: color-mix(in srgb, var(--nv-accent) 7%, var(--nv-surface));
}

.nv-body div.nv-row.nv-row--alt:has(> a.nv-row-id):hover {
    background: color-mix(in srgb, var(--nv-accent) 10%, var(--nv-row-alt));
}

.nv-assigned-all,
.nv-ari-all,
.nv-inv-all {
    display: flex;
    align-items: center;
    margin: 0;
    cursor: pointer;
}

.nv-assigned-all input,
.nv-ari-all input,
.nv-inv-all input {
    margin: 0;
    accent-color: var(--nv-accent);
}

.nv-ari-all:has(input:disabled),
.nv-inv-all:has(input:disabled) {
    cursor: not-allowed;
}

.nv-ari-all input:disabled,
.nv-inv-all input:disabled {
    accent-color: var(--nv-muted);
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
}

.nv-row-flags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.5rem;
}

.nv-row-flags .form-switch {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 100%;
}

.nv-pay-mode {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.85rem 1.25rem;
    align-items: end;
}

.nv-pay-mode + .nv-pay-mode {
    margin-top: 1rem;
}

.nv-row-fields {
    display: grid;
    gap: 0.5rem 0.75rem;
    flex: 1 1 16rem;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
}

.nv-row-save {
    flex: 0 0 auto;
}

.nv-body .form-switch {
    display: flex;
    align-items: center;
    min-height: 1.35rem;
    margin: 0;
    padding-left: 2.3em;
}

.nv-body .form-switch .form-check-input {
    width: 2.05em;
    height: 1.1em;
    margin: 0 0 0 -2.3em;
    background-color: color-mix(in srgb, var(--nv-line) 80%, rgba(var(--nv-shade), 0.2));
    border-color: transparent;
    background-position: left center;
    cursor: pointer;
    box-shadow: inset 0 1px 2px rgba(var(--nv-shade), 0.18);
}

.nv-body .form-switch .form-check-input:checked {
    background-color: var(--nv-ok);
    border-color: var(--nv-ok);
    background-position: right center;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.28), 0 1px 2px rgba(var(--nv-shade), 0.14);
}

.nv-body .form-switch .form-check-label {
    font-size: 0.8125rem;
}

.nv-body .form-check-input:disabled ~ .form-check-label[data-bs-toggle="tooltip"] {
    pointer-events: auto;
    cursor: help;
}

.nv-inv .form-switch {
    display: flex;
    align-items: center;
    min-height: 0;
    padding-left: 1.85em;
}

.nv-inv .form-switch .form-check-input {
    width: 1.65em;
    height: 0.95em;
    margin-top: 0;
    margin-left: -1.85em;
}

.nv-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.85rem;
    padding: 0.35rem 0;
    background: transparent;
}

.nv-list > .nv-pagination {
    margin: 0;
    padding: 0.4rem 0.65rem;
    border-top: 1px solid color-mix(in srgb, var(--nv-line) 85%, transparent);
    border-radius: 0;
    background: color-mix(in srgb, var(--nv-paper) 42%, var(--nv-surface));
}

.nv-pagination .nv-page-size .form-select[data-nv-page-size-pick] {
    width: auto;
    min-width: 4.75rem;
    min-height: 2.2rem;
}

.nv-pagination .btn,
.nv-page-btn {
    flex: 0 0 auto;
    min-width: 2.2rem;
    padding-inline: 0.45rem;
}

.nv-page-btn .fa-solid,
.nv-body .btn.nv-page-btn .fa-solid {
    margin-inline-end: 0;
}

.nv-page-status {
    flex: 0 0 auto;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--nv-muted);
}

.nv-toasts.toast-container {
    position: fixed;
    top: calc(3.5rem + env(safe-area-inset-top, 0px));
    left: 50%;
    right: auto;
    bottom: auto;
    z-index: 1090;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    width: max-content;
    max-width: min(28rem, calc(100% - 2 * var(--nv-pad)));
    transform: translateX(-50%);
    padding: 0;
    pointer-events: none;
}

.nv-toasts .toast {
    width: auto;
    min-width: 10rem;
    max-width: 100%;
    margin: 0;
    pointer-events: auto;
}

.nv-toast {
    border: 0;
    border-radius: var(--nv-radius-pill);
    box-shadow: var(--nv-shadow-lg);
    backdrop-filter: blur(10px);
}

.nv-toast .toast-body {
    padding: 0.7rem 1.45rem;
    text-align: center;
    font-size: 0.9375rem;
    font-weight: 600;
}

.nv-toast--ok {
    background: color-mix(in srgb, var(--nv-ok) 72%, transparent);
    color: #fff;
}

.nv-toast--err {
    background: color-mix(in srgb, var(--nv-danger) 72%, transparent);
    color: #fff;
}

.nv-form {
    width: 100%;
    max-width: min(48rem, 100%);
    min-width: 0;
}

.nv-form--wide {
    max-width: min(56rem, 100%);
}

.nv-dialog.modal {
    overflow: hidden;
}

.nv-dialog.modal.show {
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: max(1rem, env(safe-area-inset-top, 0px)) max(1rem, env(safe-area-inset-right, 0px)) max(1rem, env(safe-area-inset-bottom, 0px)) max(1rem, env(safe-area-inset-left, 0px));
}

.nv-dialog.modal.fade .modal-dialog {
    transform: none;
}

.nv-dialog .modal-dialog {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    max-height: calc(100dvh - 2rem);
    max-height: min(100%, calc(100dvh - 2rem));
    margin: 0;
    overflow: hidden;
    pointer-events: auto;
}

.nv-dialog .modal-content {
    display: flex;
    flex-direction: column;
    flex: 0 1 auto;
    width: 100%;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
    background: var(--nv-surface);
    border: 1px solid color-mix(in srgb, var(--nv-line) 70%, rgba(var(--nv-shade), 0.14));
    border-radius: var(--nv-radius);
    color: var(--nv-ink);
    box-shadow: inset 0 3px 0 var(--nv-mark), var(--nv-shadow-lg);
}

.nv-dialog .modal-content > form:not(.nv-dialog-delete) {
    display: flex;
    flex-direction: column;
    flex: 0 1 auto;
    min-height: 0;
    overflow: hidden;
}

.nv-dialog .modal-header,
.nv-dialog .modal-footer,
.nv-dialog-delete {
    flex-shrink: 0;
}

.nv-dialog .modal-header,
.nv-dialog .modal-footer {
    border-color: color-mix(in srgb, var(--nv-line) 85%, transparent);
    padding: 0.6rem 0.9rem;
    background: linear-gradient(90deg, color-mix(in srgb, var(--nv-accent) 12%, var(--nv-surface)), color-mix(in srgb, var(--nv-paper) 22%, var(--nv-surface)));
}

.nv-dialog .modal-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: flex-end;
    align-items: center;
}

.nv-dialog .modal-footer form {
    margin: 0;
}

.nv-dialog .modal-header {
    box-shadow: inset 0 2px 0 var(--nv-mark);
}

.nv-dialog .modal-body {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    max-height: calc(100dvh - 14rem);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable;
    padding: 0.75rem 0.9rem 0.9rem;
}

.nv-dialog .modal-body .row {
    --bs-gutter-x: 0.75rem;
    --bs-gutter-y: 0.7rem;
}

.nv-dialog .modal-body .row > [class*="col"] {
    min-width: 0;
}

.nv-dialog .modal-title {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 650;
    letter-spacing: -0.02em;
}

.nv-switch-field {
    display: flex;
    align-items: center;
    min-height: var(--nv-control-h);
}

.nv-form.card:has(.nv-section) {
    background: transparent;
    border: 0;
    box-shadow: none;
}

.nv-form.card:has(.nv-section) > .card-body {
    padding: 0;
    background: transparent;
}

.nv-dialog .modal-body:has(.nv-section) {
    background: color-mix(in srgb, var(--nv-paper) 48%, var(--nv-surface));
}

.nv-section {
    overflow: hidden;
    padding: 0 0.9rem 0.95rem;
    border: 1px solid color-mix(in srgb, var(--nv-accent) 18%, var(--nv-line));
    border-radius: var(--nv-radius);
    background: var(--nv-surface);
    box-shadow: var(--nv-shadow-sm), var(--nv-shine);
}

.nv-section + .nv-section,
.nv-section + form:has(.nv-section),
form:has(.nv-section) + .nv-section,
form:has(.nv-section) + form:has(.nv-section) {
    margin-top: 0.8rem;
}

.nv-section > .h6 {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0 -0.9rem 0.8rem;
    padding: 0.55rem 0.9rem;
    border-bottom: 1px solid color-mix(in srgb, var(--nv-accent) 16%, var(--nv-line));
    background: linear-gradient(90deg, color-mix(in srgb, var(--nv-accent) 22%, var(--nv-surface)), var(--nv-surface) 58%);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--nv-ink);
}

.nv-section > .h6::before {
    content: "";
    width: 0.22rem;
    height: 0.85em;
    flex: 0 0 auto;
    border-radius: var(--nv-radius-pill);
    background: var(--nv-mark);
}

.nv-dialog .nv-section > span {
    display: block;
    margin-top: 0.5rem;
    color: var(--nv-muted);
    font-size: 0.86rem;
}

.nv-tags-field {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.nv-tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.nv-tags:not(:has(.nv-tag)) {
    display: none;
}

.nv-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    max-width: 100%;
    padding: 0.12rem 0.15rem 0.12rem 0.5rem;
    border: 1px solid color-mix(in srgb, var(--nv-accent) 18%, var(--nv-line));
    border-radius: var(--nv-radius-pill);
    background: var(--nv-accent-soft);
    color: var(--nv-ink);
    font-size: 0.75rem;
    line-height: 1.25;
    white-space: nowrap;
    box-shadow: var(--nv-shine);
}

.nv-tag > span {
    overflow: hidden;
    text-overflow: ellipsis;
}

.nv-tag [data-nv-tag-remove] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 1.25rem;
    height: 1.25rem;
    padding: 0;
    border: 0;
    border-radius: var(--nv-radius-pill);
    background: transparent;
    color: var(--nv-ink-soft);
    font-size: 1rem;
    line-height: 1;
}

.nv-tag [data-nv-tag-remove]:hover {
    background: color-mix(in srgb, var(--nv-ink) 10%, transparent);
}

.nv-tag-kind {
    flex: 0 0 auto;
    color: var(--nv-muted);
    font-size: 0.7rem;
    font-weight: 650;
}

.nv-tags-add {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.5rem;
}

.nv-tags-add .form-select {
    flex: 0 0 auto;
    width: auto;
    min-width: 7.5rem;
}

.nv-tags-add .form-control {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
}

.nv-tags-add [data-nv-tag-add] {
    flex: 0 0 auto;
}

.nv-narrow .nv-form-actions {
    margin-top: 0.85rem;
    padding-top: 0.75rem;
}

.nv-dialog-delete {
    padding: 0 1rem 0.85rem;
}

.nv-form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--nv-line);
}

.nv-dialog .nv-form-actions {
    margin-bottom: 0;
}

.nv-dialog .modal-footer .nv-form-actions {
    margin: 0;
    padding: 0;
    border: 0;
    flex: 1 1 auto;
    justify-content: flex-end;
}

.nv-dialog .nv-form-actions form {
    margin: 0;
}

.nv-invoice-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.55rem 0;
    border-top: 1px solid var(--nv-line);
}

.nv-invoice-line:first-of-type {
    border-top: 0;
    padding-top: 0;
}

.nv-invoice-status {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.nv-invoice-history {
    margin: 0;
    padding-left: 1.15rem;
}

.nv-invoice-history li {
    color: var(--nv-ink-soft);
    font-size: 0.86rem;
    line-height: 1.45;
}

.nv-invoice-history li + li {
    margin-top: 0.35rem;
}

.nv-color {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.nv-color .form-control {
    flex: 1 1 auto;
    min-width: 0;
}

.nv-color input[type="color"] {
    width: 2.15rem;
    height: var(--nv-control-h);
    padding: 0.18rem;
    border: 1px solid var(--nv-line);
    border-radius: var(--nv-radius-sm);
    background: var(--nv-surface);
    cursor: pointer;
}

.nv-photos-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    min-height: 0;
}

.nv-photos-grid:not(:empty) {
    margin-bottom: 0.65rem;
}

.nv-photo {
    position: relative;
    width: 6.5rem;
    height: 6.5rem;
    overflow: hidden;
    border: 1px solid var(--nv-line);
    border-radius: var(--nv-radius);
    background: var(--nv-surface);
    box-shadow: var(--nv-shadow-sm);
}

.nv-photo img,
.nv-photo-name {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nv-photo-name {
    padding: 0.65rem 0.5rem;
    font-size: 0.72rem;
    line-height: 1.3;
    overflow: hidden;
    word-break: break-all;
}

.nv-photo-x {
    position: absolute;
    top: 0.25rem;
    right: 0.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    padding: 0;
    border: 0;
    border-radius: var(--nv-radius-pill);
    background: color-mix(in srgb, var(--nv-ink) 78%, transparent);
    color: #fff;
    line-height: 1;
    font-size: 0.95rem;
}

.nv-photos-add {
    display: inline-flex;
    align-items: center;
    min-height: 1.9rem;
    padding: 0.25rem 0.6rem;
    border: 1px dashed color-mix(in srgb, var(--nv-accent) 40%, var(--nv-line));
    border-radius: var(--nv-radius-sm);
    background: var(--nv-accent-soft);
    color: var(--nv-ink);
    font-size: 0.75rem;
    font-weight: 650;
    cursor: pointer;
    box-shadow: var(--nv-shine);
}

.nv-photos-add:hover {
    background: var(--nv-accent-mid);
}

.nv-photos-add input {
    display: none;
}

.nv-photos.is-busy .nv-photos-add {
    opacity: 0.5;
    pointer-events: none;
}

.ck.ck-editor {
    width: 100%;
    max-width: 100%;
}

.ck.ck-toolbar {
    background: var(--nv-paper) !important;
    border-color: var(--nv-line) !important;
    border-radius: var(--nv-radius-sm) var(--nv-radius-sm) 0 0 !important;
}

.ck.ck-editor__editable_inline {
    min-height: 10rem;
    background: var(--nv-surface) !important;
    border-color: var(--nv-line) !important;
    border-radius: 0 0 var(--nv-radius-sm) var(--nv-radius-sm) !important;
}

.nv-checks {
    max-height: 16rem;
    overflow: auto;
    padding: 0.6rem 0.7rem;
    border: 1px solid color-mix(in srgb, var(--nv-line) 75%, rgba(var(--nv-shade), 0.12));
    border-radius: var(--nv-radius-sm);
    background: color-mix(in srgb, var(--nv-paper) 35%, var(--nv-surface));
    box-shadow: var(--nv-shadow-in);
}

.nv-check-label {
    margin: 0.75rem 0 0.4rem;
    font-size: 0.6875rem;
    font-weight: 650;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--nv-muted);
}

.nv-check-label:first-child {
    margin-top: 0;
}

.nv-check-grid {
    display: grid;
    gap: 0.15rem 0.75rem;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 10rem), 1fr));
}

.nv-empty {
    color: var(--nv-muted);
}

.nv-inv-page {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: calc(100dvh - 3.5rem - env(safe-area-inset-top, 0px) - 1rem - max(1.25rem, env(safe-area-inset-bottom, 0px)));
}

.nv-inv-page .nv-page {
    margin-bottom: 0.45rem;
}

.nv-inv-page .nv-toolbar {
    flex: 0 0 auto;
    margin-bottom: 0.5rem;
}

.nv-inv-desk {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    gap: 0.5rem;
}

.nv-inv-form {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.nv-inv {
    --nv-inv-room: 5.425rem;
    --nv-inv-keys: 5rem;
    --nv-inv-day: 4.375rem;
    --nv-inv-row: 1.7rem;
    flex: 1 1 auto;
    min-height: 10rem;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    scroll-padding-inline-start: calc(var(--nv-inv-room) + var(--nv-inv-keys));
    max-width: 100%;
    border: 1px solid color-mix(in srgb, var(--nv-line) 75%, rgba(var(--nv-shade), 0.12));
    border-top: 3px solid var(--nv-accent);
    border-radius: var(--nv-radius);
    background: var(--nv-surface);
    box-shadow: var(--nv-elev);
}

.nv-inv-week {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.35rem;
}

.nv-inv-range {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
}

.nv-inv-cal {
    --nv-inv-rule: color-mix(in srgb, var(--nv-line) 75%, transparent);
    --nv-inv-rule-major: color-mix(in srgb, var(--nv-ink) 28%, var(--nv-line));
    margin: 0;
    border-collapse: separate;
    border-spacing: 0;
    width: max-content;
    min-width: 100%;
    font-size: 0.8125rem;
    color: var(--nv-ink);
}

.nv-inv-cal th,
.nv-inv-cal td {
    box-sizing: border-box;
    border-bottom: 1px solid var(--nv-inv-rule);
    border-right: 1px solid var(--nv-inv-rule);
    vertical-align: top;
}

.nv-inv-cal thead th {
    border-top: 1px solid var(--nv-inv-rule);
}

.nv-inv-cal thead th:first-child,
.nv-inv-cal tbody th.nv-inv-cal__room {
    border-left: 1px solid var(--nv-inv-rule);
}

.nv-inv-cal thead th:first-child,
.nv-inv-cal tbody th.nv-inv-cal__room,
.nv-inv-cal thead th.nv-inv-keys-head,
.nv-inv-cal tbody th.nv-inv-keys,
.nv-inv-cal thead th.nv-inv-cal__day,
.nv-inv-cal td.nv-inv-cell {
    border-right-width: 2px;
    border-right-color: var(--nv-inv-rule-major);
}

.nv-inv-cal tbody th,
.nv-inv-cal tbody td {
    border-bottom-width: 2px;
    border-bottom-color: var(--nv-inv-rule-major);
}

.nv-inv-cal thead th {
    position: sticky;
    top: 0;
    z-index: 3;
    padding: 0.4rem 0.45rem;
    font-size: 0.625rem;
    font-weight: 650;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--nv-muted);
    background: color-mix(in srgb, var(--nv-accent) 14%, var(--nv-paper));
    white-space: nowrap;
    text-align: center;
}

.nv-inv-cal thead th:first-child,
.nv-inv-cal tbody th.nv-inv-cal__room {
    position: sticky;
    left: 0;
    width: var(--nv-inv-room);
    min-width: var(--nv-inv-room);
    max-width: var(--nv-inv-room);
    text-align: start;
    background: var(--nv-surface);
}

.nv-inv-cal thead th.nv-inv-keys-head,
.nv-inv-cal tbody th.nv-inv-keys {
    position: sticky;
    left: var(--nv-inv-room);
    width: var(--nv-inv-keys);
    min-width: var(--nv-inv-keys);
    max-width: var(--nv-inv-keys);
    text-align: start;
    background: var(--nv-surface);
    box-shadow: none;
}

.nv-inv-cal tbody th.nv-inv-cal__room {
    z-index: 4;
}

.nv-inv-cal tbody th.nv-inv-keys {
    z-index: 5;
}

.nv-inv-cal thead th:first-child,
.nv-inv-cal thead th.nv-inv-keys-head {
    top: 0;
    z-index: 7;
    background: color-mix(in srgb, var(--nv-accent) 14%, var(--nv-paper));
}

.nv-inv-cal thead th.nv-inv-cal__day {
    width: var(--nv-inv-day);
    min-width: var(--nv-inv-day);
    max-width: var(--nv-inv-day);
    padding-left: 0;
    padding-right: 0;
}

.nv-inv-cal tbody th.nv-inv-cal__room {
    padding: 0.18rem 0.3rem;
    font-weight: 650;
}

.nv-inv-cal tbody th.nv-inv-keys {
    padding: 0;
    font-weight: 650;
}

.nv-inv-cal__alt th,
.nv-inv-cal__alt td {
    background: var(--nv-row-alt);
}

.nv-inv-cal__today {
    box-shadow: inset 0 2px 0 var(--nv-mark);
    background: color-mix(in srgb, var(--nv-accent) 10%, var(--nv-surface));
}

.nv-inv-cal__alt td.nv-inv-cal__today,
.nv-inv-cal__alt th.nv-inv-cal__today {
    background: color-mix(in srgb, var(--nv-accent) 10%, var(--nv-row-alt));
}

.nv-inv-cal__weekday {
    display: block;
    color: var(--nv-muted);
}

.nv-inv-cal__date {
    display: block;
    margin-top: 0.05rem;
    font-size: 0.75rem;
    letter-spacing: 0;
    text-transform: none;
    font-weight: 700;
    color: var(--nv-ink);
}

.nv-inv-cal__room-name {
    display: block;
    overflow-wrap: anywhere;
}

.nv-inv-cal__code {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    overflow-wrap: anywhere;
    color: var(--nv-muted);
}

.nv-inv-apply__sheet {
    min-width: 0;
    overflow-x: auto;
}

.nv-inv-apply__sheet:not(:has([data-nv-inv-apply-plan-block])) {
    display: none;
}

.nv-inv-extra {
    display: none !important;
}

.nv-inv-apply__cols,
.nv-inv-apply-plan {
    display: grid;
    grid-template-columns: 2.35rem minmax(4rem, 1.15fr);
    gap: 0.2rem 0.4rem;
    align-items: center;
    min-width: 0;
}

.nv-inv-apply__col {
    min-width: 0;
    font-size: 0.5625rem;
    font-weight: 650;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.2;
    color: var(--nv-muted);
}

.nv-inv-apply__plans {
    display: grid;
    gap: 0.2rem;
}

.nv-inv-apply-plan {
    min-width: 0;
    padding: 0;
    border: 0;
}

.nv-inv-apply-plan + .nv-inv-apply-plan {
    padding-top: 0.2rem;
    border-top: 1px solid color-mix(in srgb, var(--nv-mark) 55%, var(--nv-line));
}

#nv-inv-apply .nv-inv-plan__code {
    margin: 0;
    min-width: 0;
}

#nv-inv-apply .nv-inv-apply-plan .form-control,
#nv-inv-apply .nv-inv-apply-plan .form-select {
    min-width: 0;
    min-height: 1.9rem;
    padding: 0.2rem 0.35rem;
}

#nv-inv-apply .modal-body {
    overflow-x: auto;
}

#nv-inv-apply [hidden] {
    display: none !important;
}

.nv-inv-cell {
    position: relative;
    z-index: 0;
    padding: 0;
    min-width: var(--nv-inv-day);
    width: var(--nv-inv-day);
    cursor: cell;
}

.nv-inv-cell--empty {
    opacity: 0.62;
}

.nv-inv-cell .form-control,
.nv-inv-cell .form-switch,
.nv-inv-cell .form-check-input {
    cursor: auto;
}

.nv-inv-cell input[type="number"] {
    appearance: textfield;
    -moz-appearance: textfield;
}

.nv-inv-cell input[type="number"]::-webkit-inner-spin-button,
.nv-inv-cell input[type="number"]::-webkit-outer-spin-button {
    appearance: none;
    -webkit-appearance: none;
    margin: 0;
}

.nv-inv-stack {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.nv-inv-key,
.nv-inv-slot,
.nv-inv-stock,
.nv-inv-cell .form-control,
.nv-inv-cell .form-switch {
    box-sizing: border-box;
    height: var(--nv-inv-row);
    min-height: var(--nv-inv-row);
    max-height: var(--nv-inv-row);
    margin: 0;
}

.nv-inv-key {
    display: flex;
    align-items: center;
    padding: 0 0.35rem;
    font-size: 0.625rem;
    font-weight: 650;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    white-space: nowrap;
    color: var(--nv-muted);
    cursor: help;
    border-bottom: 1px solid var(--nv-inv-rule);
}

.nv-inv-key:not([data-bs-toggle="tooltip"]) {
    cursor: default;
}

.nv-inv-slot--plan {
    border: 1px solid var(--nv-inv-rule);
    border-top-width: 2px;
    border-top-color: var(--nv-inv-rule-major);
}

.nv-inv-key--plan {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--nv-ink);
}

.nv-inv-slot--when {
    display: none;
}

.nv-inv-desk-picking,
.nv-inv-desk-picking * {
    user-select: none;
    cursor: grabbing;
}

.nv-inv-stock.is-selected,
.nv-inv-plan.is-selected {
    background: color-mix(in srgb, var(--nv-accent) 22%, var(--nv-surface));
    box-shadow: inset 0 0 0 2px var(--nv-accent);
}

.nv-inv-cal__alt .nv-inv-stock.is-selected,
.nv-inv-cal__alt .nv-inv-plan.is-selected {
    background: color-mix(in srgb, var(--nv-accent) 22%, var(--nv-row-alt));
}

.nv-inv-stock.is-selected .form-control,
.nv-inv-plan.is-selected .form-control,
.nv-inv-plan.is-selected .form-switch,
.nv-inv-plan.is-selected .nv-inv-slot--plan {
    background-color: color-mix(in srgb, var(--nv-accent) 22%, var(--nv-surface));
}

.nv-inv-cal__alt .nv-inv-stock.is-selected .form-control,
.nv-inv-cal__alt .nv-inv-plan.is-selected .form-control,
.nv-inv-cal__alt .nv-inv-plan.is-selected .form-switch,
.nv-inv-cal__alt .nv-inv-plan.is-selected .nv-inv-slot--plan {
    background-color: color-mix(in srgb, var(--nv-accent) 22%, var(--nv-row-alt));
}

.nv-inv-stock.is-selected .form-control:hover,
.nv-inv-stock.is-selected .form-control:focus,
.nv-inv-plan.is-selected .form-control:hover,
.nv-inv-plan.is-selected .form-control:focus {
    background-color: color-mix(in srgb, var(--nv-accent) 22%, var(--nv-surface));
    border-color: var(--nv-accent);
    box-shadow: none;
}

.nv-inv-cal__alt .nv-inv-stock.is-selected .form-control:hover,
.nv-inv-cal__alt .nv-inv-stock.is-selected .form-control:focus,
.nv-inv-cal__alt .nv-inv-plan.is-selected .form-control:hover,
.nv-inv-cal__alt .nv-inv-plan.is-selected .form-control:focus {
    background-color: color-mix(in srgb, var(--nv-accent) 22%, var(--nv-row-alt));
}

.nv-inv-stock.is-origin,
.nv-inv-plan.is-origin {
    box-shadow: inset 0 2px 0 var(--nv-mark), inset 0 0 0 2px var(--nv-accent);
}

.nv-inv-field {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.nv-inv-field__label {
    margin: 0;
    font-size: 0.5625rem;
    font-weight: 650;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--nv-muted);
}

.nv-inv-stock,
.nv-inv-plan,
.nv-inv-plan-keys {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
    padding: 0;
    min-height: 0;
}

.nv-inv-stock {
    height: var(--nv-inv-row);
    min-height: var(--nv-inv-row);
    max-height: var(--nv-inv-row);
}

.nv-inv-plan,
.nv-inv-plan-keys {
    height: auto;
    max-height: none;
}

.nv-inv-plan__code {
    margin: 0;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.nv-inv-cell .form-check {
    min-height: 0;
    height: var(--nv-inv-row);
    margin: 0;
    padding-left: 0;
}

.nv-inv-cell .form-switch {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: var(--nv-inv-row);
    min-height: var(--nv-inv-row);
    max-height: var(--nv-inv-row);
    margin: 0;
    padding: 0;
    border: 1px solid var(--nv-inv-rule);
    border-radius: 0;
}

.nv-inv-cell .form-switch .form-check-input {
    position: static;
    float: none;
    margin: 0;
}

.nv-inv-cell .form-control {
    width: 100%;
    height: var(--nv-inv-row);
    min-height: var(--nv-inv-row);
    max-height: var(--nv-inv-row);
    padding: 0 0.25rem;
    border-radius: 0;
    text-align: end;
}

.nv-inv .form-control {
    min-width: 0;
    width: 100%;
}

.nv-inv-save {
    flex: 0 0 auto;
    margin-top: 0;
    padding-top: 0.45rem;
}

@media (max-width: 575.98px) {
    .nv-gate-main {
        padding-top: 1rem;
    }

    .nv-gate-panel {
        padding: 1.25rem 1rem 1.15rem;
    }

    .nv-body .card-body {
        padding: 1rem;
    }

    .nv-search,
    .nv-filter,
    .nv-sort,
    .nv-toolbar .form-control[type="date"] {
        flex: 1 1 100%;
        width: 100%;
        max-width: none;
        min-width: 0;
    }

    .nv-search .form-control,
    .nv-filter .form-select,
    .nv-toolbar .form-select {
        flex: 1 1 auto;
        width: 100%;
        max-width: none;
        min-width: 0;
    }

    .nv-toolbar .btn {
        width: 100%;
    }

    .nv-toolbar .nv-inv-week {
        flex: 1 1 100%;
    }

    .nv-toolbar .nv-inv-week .btn {
        width: auto;
    }

    .nv-toolbar .nv-inv-range {
        flex: 1 1 100%;
        display: grid;
        grid-template-columns: 1fr 1fr auto;
        align-items: center;
        width: 100%;
    }

    .nv-inv-page .nv-toolbar .nv-inv-range .form-control[type="date"] {
        flex: 1 1 auto;
        width: 100%;
        max-width: none;
    }

    .nv-inv-page .nv-toolbar .nv-inv-range .btn {
        width: auto;
    }

    .nv-inv-page {
        height: calc(100dvh - 3.5rem - env(safe-area-inset-top, 0px) - 0.75rem - max(0.75rem, env(safe-area-inset-bottom, 0px)));
    }

    .nv-inv-page .nv-page h1 {
        font-size: 1.05rem;
    }

    .nv-inv {
        --nv-inv-room: 3.85rem;
        --nv-inv-keys: 5rem;
        --nv-inv-day: min(11.55rem, calc((100vw - var(--nv-inv-room) - var(--nv-inv-keys) - 1.5rem) * 0.7));
        --nv-inv-row: 2.15rem;
        scroll-snap-type: x mandatory;
        scroll-padding-inline-start: calc(var(--nv-inv-room) + var(--nv-inv-keys));
    }

    .nv-inv-cal thead th.nv-inv-cal__day,
    .nv-inv-cal td.nv-inv-cell {
        scroll-snap-align: start;
    }

    .nv-inv-cell {
        padding: 0;
        min-width: var(--nv-inv-day);
        width: var(--nv-inv-day);
    }

    .nv-inv-slot--when {
        display: flex;
        align-items: center;
        margin: 0;
        padding: 0 0.25rem;
        font-size: 0.75rem;
        font-weight: 700;
        letter-spacing: 0.02em;
        color: var(--nv-ink);
        border-bottom: 1px solid var(--nv-inv-rule);
    }

    .nv-inv-keys .nv-inv-slot--when {
        visibility: hidden;
    }

    #nv-inv-apply .nv-inv-apply-plan .form-control,
    #nv-inv-apply .nv-inv-apply-plan .form-select {
        min-height: 2.25rem;
        font-size: 1rem;
    }

    .nv-inv-save .btn {
        width: 100%;
    }

    .nv-pagination .form-select[data-nv-page-size-pick] {
        flex: 1 1 100%;
        max-width: 6.5rem;
    }

    .nv-dialog.modal.show {
        padding: max(0.5rem, env(safe-area-inset-top, 0px)) max(0.5rem, env(safe-area-inset-right, 0px)) max(0.5rem, env(safe-area-inset-bottom, 0px)) max(0.5rem, env(safe-area-inset-left, 0px));
    }

    .nv-dialog .modal-dialog {
        max-width: 100%;
    }

    .nv-dialog .modal-header,
    .nv-dialog .modal-footer,
    .nv-dialog .modal-body {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .nv-pay-mode {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .nv-dialog .nv-row-flags {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.7rem;
    }

    .nv-home-grid {
        gap: 0.65rem;
    }

    .nv-body .nv-home-card {
        padding: 1rem 1.05rem;
    }

    .nv-body .nv-metric {
        min-height: 5.2rem;
        padding: 1rem 1.05rem;
    }
}

@media (min-width: 576px) {
    .nv-search .form-control,
    .nv-filter .form-select,
    .nv-toolbar .form-control,
    .nv-toolbar .form-select {
        width: auto;
        max-width: 16rem;
    }

    .nv-page-size {
        margin-inline-end: auto;
    }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
    .nv-body a.nv-nav-main {
        padding-left: 0.5rem;
        padding-right: 0.5rem;
        font-size: 0.8125rem;
    }

    .nv-body .nv-panel-switch a,
    .nv-body .nv-panel-switch button {
        padding-left: 0.65rem;
        padding-right: 0.65rem;
    }
}

@media (min-width: 992px) {
    .nv-header-bar {
        gap: 0.85rem;
        padding-left: max(1.5rem, env(safe-area-inset-left, 0px));
        padding-right: max(1.5rem, env(safe-area-inset-right, 0px));
    }

    .nv-switcher {
        flex: 0 1 14rem;
    }

    .nv-menu,
    .nv-icon-btn,
    .nv-avatar {
        width: 2rem;
        height: 2rem;
    }

    .nv-body a.nv-nav-main {
        min-height: 2.1rem;
    }

    .nv-nav {
        padding-left: max(1.5rem, env(safe-area-inset-left, 0px));
        padding-right: max(1.5rem, env(safe-area-inset-right, 0px));
        padding-bottom: 0;
    }

    .nv-main,
    .nv-gate-main {
        padding: 1.35rem max(1.75rem, env(safe-area-inset-right, 0px)) 2.5rem max(1.75rem, env(safe-area-inset-left, 0px));
    }

    .nv-gate-panel {
        padding: 1.5rem 1.4rem 1.35rem;
    }
}
