body{background:#f4f6f8;color:#172c36;font-family:system-ui,sans-serif}.brand{font-size:1.6rem;font-weight:800;letter-spacing:-.05em;color:#172c36}.auth-panel{max-width:32rem;margin:3vh auto}.card{border:1px solid #e1e7eb;border-radius:1.1rem;box-shadow:0 12px 35px #172c3608}.eyebrow{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#146c63}.secret{overflow-wrap:anywhere;font-family:monospace}.validation-summary-valid{display:none}input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),button{min-height:44px}:focus-visible{outline:3px solid #de9a21;outline-offset:3px}

.qr-code svg{max-width:100%;height:auto;width:260px}
.app-nav > a,.app-nav .dropdown-toggle{display:inline-flex;align-items:center;min-height:44px;padding:.45rem .65rem;color:#28514b;text-decoration:none;border:0;border-radius:.5rem;background:transparent;font:inherit;line-height:1.5}.app-nav > a:hover,.app-nav .dropdown-toggle:hover,.app-nav .dropdown-toggle.show{background:#e8f1ef}.app-nav .dropdown-menu{min-width:15rem;padding:.5rem;border:1px solid #e1e7eb;border-radius:.75rem}.app-nav .dropdown-item{padding:.65rem .8rem;border-radius:.4rem;color:#28514b}.app-nav .dropdown-item:hover,.app-nav .dropdown-item:focus{background:#e8f1ef}.app-nav .dropdown-toggle::after{margin-left:.5rem}.audit-detail{white-space:pre-wrap;overflow-wrap:anywhere}


label:has(> input[type=checkbox]),label:has(> input[type=radio]){display:inline-flex;align-items:center;gap:.5rem;min-height:44px}label > input[type=checkbox],label > input[type=radio]{flex-shrink:0;margin:0;float:none}input[type=checkbox],input[type=radio]{accent-color:var(--bs-primary)}

.select2-container{max-width:100%}.select2-container .select2-selection--single{min-height:44px;border:1px solid #dee2e6;border-radius:.375rem;display:flex;align-items:center}.select2-container--default .select2-selection--single .select2-selection__arrow{height:42px}.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{background:var(--bs-primary)}.select2-container .select2-selection--single .select2-selection__rendered{padding-left:.75rem;padding-right:2rem}.select2-dropdown{border-color:#dee2e6}

.mail-progress { display: none; }
.invoice-send.htmx-request .mail-envelope { display: none; }
.invoice-send.htmx-request .mail-progress { display: inline-block; }
.invoice-send.htmx-request, .invoice-send:disabled { color: var(--bs-secondary-color); }

/* Bootstrap-sized Select2 controls; load these overrides after the vendor CSS. */
.select2-container .select2-selection--single {
    height:44px; min-height:44px; display:flex; align-items:center;
    border-color:var(--bs-border-color); border-radius:var(--bs-border-radius);
    background-color:var(--bs-body-bg);
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height:1.5; color:var(--bs-body-color); padding-left:.75rem; padding-right:2.25rem;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
    top:0; right:.5rem; height:100%; width:1rem;
}
.select2-container--default .select2-selection--single .select2-selection__clear {
    min-height:0; height:100%; margin-right:0; padding:0 .5rem; order:2;
}
select.w-auto + .select2-container { min-width:5rem; }
.select2-container--default .select2-selection--single:focus {
    border-color:#86b7fe; box-shadow:0 0 0 .25rem rgba(13,110,253,.25); outline:0;
}
.select2-container--default.select2-container--disabled .select2-selection--single { background-color:var(--bs-secondary-bg); }

/* Shared native form progress, following Jinglemachine. */
button.is-submitting{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;white-space:nowrap;cursor:wait;opacity:.75}
button[aria-disabled=true]{cursor:wait;pointer-events:none}
.button-spinner{display:inline-block;flex:none;width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:button-spin .8s linear infinite}
@keyframes button-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.button-spinner{animation:none;border-style:dotted}}
.request-progress{display:none}
.htmx-request .request-progress{display:inline-block}
