/* Shared brand and public form recipes. Layout belongs to each component. */
.idigis-brand { display: inline-flex; align-items: center; gap: 10px; vertical-align: middle; color: inherit; white-space: nowrap; }
.idigis-brand img { display: block; flex: 0 0 auto; }
.idigis-brand__symbol, .idigis-brand__signature--inverse { display: none !important; }
.idigis-brand__signature { width: 117px; height: 40px; }
[data-theme="dark"] .idigis-brand__signature--light,
.auth-story .idigis-brand__signature--light { display: none; }
[data-theme="dark"] .idigis-brand__signature--inverse,
.auth-story .idigis-brand__signature--inverse { display: block !important; }
.auth-eyebrow { color: var(--idigis-primary); font-size: var(--idigis-ui-small); font-weight: 600; letter-spacing: 0.16em; }
.login-form__title { margin: 12px 0; font-size: 32px; font-weight: 600; letter-spacing: -0.025em; line-height: 1.16; color: var(--idigis-text); }
.login-form__subtitle { margin-bottom: 32px; color: var(--idigis-text-soft); font-size: 16px; line-height: 1.6; }
.login-form .field:not(:last-child) { margin-bottom: 20px; }
.login-form .label { color: var(--idigis-text); font-size: 14px; font-weight: 500; margin-bottom: 8px; }
.login-form .input { height: var(--idigis-access-height); border-radius: 10px; font-size: 16px; background: var(--idigis-surface); color: var(--idigis-text); border-color: var(--idigis-border-strong); box-shadow: none; }
.login-form .input::placeholder { color: var(--idigis-text-muted); }
.login-form .control.has-icons-left .icon, .login-form .control.has-icons-right .icon { height: var(--idigis-access-height); color: var(--idigis-text-muted); }
.login-form .control.has-icons-right .login-form__reveal { pointer-events: auto; width: 48px; background: none; border: 0; cursor: pointer; }
.login-form .checkbox { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 14px; color: var(--idigis-text-soft); }
.login-form input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--idigis-primary); flex-shrink: 0; }
.login-form .button { min-height: var(--idigis-access-height); font-size: 16px; border-radius: 10px; }
.login-form__link { padding: 0; border: 0; background: none; color: var(--idigis-primary); font: inherit; font-weight: 600; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.login-form__signup { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--idigis-border); text-align: center; font-size: 14px; color: var(--idigis-text-soft); line-height: 1.8; }
.auth-help { margin-top: 16px; font-size: 13px; color: var(--idigis-text-soft); }
.auth-help summary { width: fit-content; min-height: 44px; display: flex; align-items: center; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.auth-help p { padding: 0 0 12px; line-height: 1.5; }
.alpha-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 6px; font-size: var(--idigis-ui-small); font-weight: 600; color: var(--idigis-text-soft); background: var(--idigis-surface-muted); border: 1px solid var(--idigis-border); }
.login-form__kicker { margin-bottom: 16px; }
.register-honeypot { position: absolute; left: -100vw; width: 1px; height: 1px; overflow: hidden; }
.password-rules { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 16px; }
.password-rules span { display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px; border-radius: 6px; font-size: 12px; color: var(--idigis-text-soft); background: var(--idigis-surface-muted); }
.password-rules span.is-ok { color: var(--idigis-success); background: var(--idigis-success-bg); }
.register-terms { display: flex; align-items: flex-start; gap: 10px; color: var(--idigis-text-soft); font-size: 14px; line-height: 1.5; }
.register-terms input { margin-top: 4px; }
.register-success { display: grid; gap: 16px; }
.register-success > span { font-size: 40px; color: var(--idigis-primary); }
.register-success h1, .login-form > h1:not(.login-form__title) { font-size: 28px; font-weight: 600; color: var(--idigis-text); }
.register-success p { color: var(--idigis-text-soft); }
@media (min-width: 1024px) {
    .is-sidebar-collapsed .idigis-brand__signature { display: none !important; }
    .is-sidebar-collapsed .idigis-brand__symbol { display: block !important; }
}
@media (max-width: 768px) {
    .login-form__title { font-size: 28px; }
    .login-form__subtitle { margin-bottom: 28px; }
    .login-form .columns { margin-top: 0; }
}

/* FocusOnNavigate targets headings, not interactive controls. */
.auth-main h1:focus, .landing h1:focus, .public-empty h1:focus { outline: none; }
:where(.login-form, .landing, .public-empty) :is(a, button, summary):focus-visible {
    outline: 2px solid var(--idigis-primary);
    outline-offset: 3px;
}
.public-empty { width: min(480px, 100%); padding: 32px; border: 1px solid var(--idigis-border); border-radius: 24px; background: var(--idigis-surface); }
.public-empty h1 { font-size: 28px; font-weight: 600; margin: 32px 0 12px; }
.public-empty p { color: var(--idigis-text-soft); margin-bottom: 24px; }

/* Shared control roles. Never target the institutional card's .field/.title. */
.button.is-primary:not([disabled]):hover { background: var(--idigis-primary-strong); color: var(--idigis-on-primary); }
.button.is-primary:focus-visible { outline: 2px solid var(--idigis-primary); outline-offset: 3px; }
.button.is-primary.is-loading::after { border-color: transparent transparent var(--idigis-on-primary) var(--idigis-on-primary); }
:is(.button, .tag).is-primary.is-light { background: var(--idigis-primary-soft); color: var(--idigis-primary); }
:is(.button, .tag).is-success { background: var(--idigis-success-bg); color: var(--idigis-success); border-color: transparent; }
:is(.button, .tag).is-warning { background: var(--idigis-warning-bg); color: var(--idigis-warning); border-color: transparent; }
:is(.button, .tag).is-danger { background: var(--idigis-danger-bg); color: var(--idigis-danger); border-color: transparent; }
:is(.button, .tag).is-info { background: var(--idigis-info-bg); color: var(--idigis-info); border-color: transparent; }
.tag.is-primary { background: var(--idigis-primary-soft); color: var(--idigis-primary); }
.notification.is-danger, .notification.is-danger.is-light { background: var(--idigis-danger-bg); color: var(--idigis-danger); }
.notification.is-warning, .notification.is-warning.is-light { background: var(--idigis-warning-bg); color: var(--idigis-warning); }
.notification.is-success, .notification.is-success.is-light { background: var(--idigis-success-bg); color: var(--idigis-success); }
.notification.is-info, .notification.is-info.is-light { background: var(--idigis-info-bg); color: var(--idigis-info); }
.has-text-primary { color: var(--idigis-primary) !important; }
.has-text-success { color: var(--idigis-success) !important; }
.has-text-danger { color: var(--idigis-danger) !important; }
.has-text-warning { color: var(--idigis-warning) !important; }
.admin-topbar { backdrop-filter: none; }
.admin-page > :is(.ui-page-header, .page-header) .title { font-weight: 600; }
.admin-page > :is(.ui-page-header, .page-header) .subtitle { font-size: 16px; line-height: 1.5; }
.admin-content :is(.input, .textarea, .select select) { background-color: var(--idigis-surface); color: var(--idigis-text); }
.admin-content :is(.button, a, summary):focus-visible { outline: 2px solid var(--idigis-primary); outline-offset: 3px; }
.admin-content h1:focus { outline: none; }
.ui-modal__title:focus { outline: none; }
.ui-modal__head .delete { width: 44px; height: 44px; max-width: 44px; max-height: 44px; }
.ui-modal .delete:focus-visible { outline: 2px solid var(--idigis-primary); outline-offset: 3px; }

.tag.is-light { background: var(--idigis-surface-muted); color: var(--idigis-text-soft); }
.switch-field input:focus-visible + span { outline: 2px solid var(--idigis-primary); outline-offset: 3px; }
/* Disabled controls are quiet and recognizable in both themes. */
:is(.admin-content, .login-form, .landing) .button:is([disabled], .is-disabled) {
    background: var(--idigis-surface-muted);
    color: var(--idigis-text-muted);
    border-color: var(--idigis-border);
    opacity: 0.65;
    box-shadow: none;
    cursor: not-allowed;
}
:is(.admin-content, .login-form, .landing) .button.is-loading[disabled] {
    background: var(--idigis-primary);
    color: var(--idigis-on-primary);
    border-color: transparent;
    opacity: 0.8;
}
.admin-content .control.has-icons-left .icon.is-left,
.admin-content .control.has-icons-right .icon.is-right { color: var(--idigis-text-muted); }
