/* Hide any web components that haven't been */
body {
    overflow-x: hidden;
}

:not(:defined),
.before-upgrade {
    visibility: hidden;
}

fluent-toolbar[orientation=horizontal] {
    width: 100%;
}

fluent-data-grid {
    width: 100%;
}

.validation-message {
    color: var(--error);
}

.validation-message::before {
    color: var(--error);;
    position: relative;
    content: "!";
    font-weight: 700;
    padding: 0 5px;
}

fluent-select.ignore-min-width {
    min-width: unset !important;
}

fluent-text-field.block, fluent-search.block, fluent-button.block, fluent-select.block, fluent-number-field.block, fluent-combobox.block, fluent-anchor.block, span.block, span.block > fluent-button, fluent-text-area.block {
    width: 100%;
}

::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

::-webkit-scrollbar-thumb {
    background: #aaaaaa;
    border-radius: 7.5px;
}

::-webkit-scrollbar-thumb:hover {
    background: #6b6b6b;
}

fluent-card.overflow-visible {
    content-visibility: inherit;
    contain: inherit;
}

.hidden {
    display: none !important;
}

.h-100-percent{
    height: 100% !important;
}

.w-100-percent{
    width: 100% !important;
}

.w-50-percent{
    width: 50% !important;
}

.wh-100-percent{
    height: 100%;
    width: 100%;
}

.mw-100-percent{
    max-width: 100%;
}

.mw-125{
    max-width: 125px;
}

.center-vertical{
    align-items: center;
    display: flex;
}

.mt-5 {
    margin-top: 5px;
}

.mb-5 {
    margin-bottom: 50px;
}

.p-12 {
    padding: 12px;
}

.border-none{
    border: none !important;
}

.align-center {
    display: flex !important;
    align-items: center !important;
}

.fluent-overlay {
    z-index: 9996 !important;
}

fluent-tabs::part(tabpanel) {
    min-width: 100%;
}

fluent-tabs {
    row-gap: 4px;
}

fluent-tab {
    gap: 4px;
}

fluent-tabs[orientation="vertical"]::part(activeIndicator) {
    margin-inline-start: calc(var(--focus-stroke-width) * .5px);
}

pre {
    margin: 0;
}

.gradient-text-accent {
    color: transparent !important;
    background-clip: text;
    background-image: linear-gradient(to right, var(--neutral-foreground-rest), var(--accent-fill-rest));
}
/* Limit dropdown height and add scroll */
fluent-select::part(listbox),
fluent-combobox::part(listbox) {
    max-height: 350px; /* Adjust this value as needed */
    overflow-y: auto;
}

/* OIDC Login Button */
.oidc-login-container {
    width: 100%;
}

.oidc-login-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 14px 24px;
    background: linear-gradient(135deg, #0078d4 0%, #005a9e 100%);
    color: #ffffff;
    border: none;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.2s ease;
    box-shadow: 0 2px 8px rgba(0, 120, 212, 0.3);
}

.oidc-login-btn:hover {
    background: linear-gradient(135deg, #106ebe 0%, #004578 100%);
    box-shadow: 0 4px 12px rgba(0, 120, 212, 0.4);
    transform: translateY(-1px);
    color: #ffffff;
    text-decoration: none;
}

.oidc-login-btn:active {
    transform: translateY(0);
    box-shadow: 0 2px 4px rgba(0, 120, 212, 0.3);
}

/* Auth Divider */
.auth-divider {
    display: flex;
    align-items: center;
    width: 100%;
    margin: 8px 0;
}

.auth-divider::before,
.auth-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background-color: var(--neutral-stroke-rest, #d1d1d1);
}

.auth-divider span {
    padding: 0 16px;
    color: var(--neutral-foreground-hint, #707070);
    font-size: 14px;
    text-transform: lowercase;
}

/* Deprecation Warning Banner */
.deprecation-warning {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 12px 16px;
    background-color: #fef3c7;
    border: 1px solid #f59e0b;
    border-radius: 6px;
    color: #92400e;
    font-size: 14px;
    line-height: 1.5;
}

.deprecation-warning svg {
    flex-shrink: 0;
}

/* Legacy Login Button (subdued styling) */
.legacy-login-btn {
    opacity: 0.85;
}
