/* ==========================================================================
   Nubiss forms + small accessibility helpers
   --------------------------------------------------------------------------
   Loaded after nubiss_shell.css / nubiss_dark.css.

   The --nv-* tokens exist in DARK mode only, so every var() below carries the
   LIGHT value as its fallback: one rule serves both themes.
   ========================================================================== */

/* Required-field marker: <span class="nv-req" aria-hidden="true">*</span>
   Decorative; the control's own `required` attribute is what assistive
   technology announces. */
.nv-req {
    color: var(--nv-danger, #c42532);
    font-weight: 700;
    margin-left: 0.125rem;
    text-decoration: none;
}

/* Non-field error block (templates/partial/form/_errors.html) */
.nv-form-errors {
    margin-bottom: 1rem;
}

/* Field wrapper (templates/partial/form/_field.html) */
.nv-field .invalid-feedback {
    color: var(--nv-danger, #c42532);
}
.nv-field--invalid .form-control,
.nv-field--invalid .form-select {
    border-color: var(--nv-danger, #c42532);
}

/* Password visibility toggle, now a real <button> inside the input group:
   strip the UA button chrome so it looks like the old <span>. */
button.input-group-text {
    font: inherit;
    line-height: inherit;
    appearance: none;
    -webkit-appearance: none;
}
button.input-group-text:focus-visible {
    outline: 2px solid var(--nv-accent-text, #13348B);
    outline-offset: -2px;
}

/* Initials avatar (templates/partial/nav/_user_initials.html).
   Sits inside Vuexy's .avatar wrapper, which supplies the status dot. */
.nv-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--nv-accent-tint, #EEF2FC);
    color: var(--nv-accent-text, #13348B);
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    user-select: none;
    overflow: hidden;
}
.avatar > .nv-avatar {
    width: 100%;
    height: 100%;
}
