/* AAP UI shell. Colours come from the MudBlazor theme (AidenTheme, mapped from the Aiden Design System tokens);
   spacing follows the design system scale (space.2 = 8px, space.3 = 12px, space.4 = 16px, space.5 = 24px, space.6 = 32px). */

/* Ubuntu: font.role.body. Amberes Grotesk (font.role.display) is not shipped: its embedding licence is unconfirmed. */
@font-face { font-family: "Ubuntu"; src: url("../fonts/Ubuntu-Regular.ttf") format("truetype"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Ubuntu"; src: url("../fonts/Ubuntu-Medium.ttf") format("truetype"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Ubuntu"; src: url("../fonts/Ubuntu-Bold.ttf") format("truetype"); font-weight: 700; font-display: swap; }

html, body { margin: 0; }

.aap-loading { padding: 24px; font-family: "Ubuntu", Arial, sans-serif; }

/* App bar: light operational surface with a 1px border (component token app-bar.border). */
.aap-app-bar { border-bottom: 1px solid var(--mud-palette-lines-default); }
.aap-user-widget { display: flex; align-items: center; gap: 8px; }

/* Sidebar header: compact Aiden icon with the product name and a quiet descriptor. */
.aap-sidebar-brand { display: flex; align-items: center; gap: 12px; padding: 16px 24px; min-height: var(--mud-appbar-height); box-sizing: border-box; border-bottom: 1px solid rgba(255, 255, 255, 0.16); }
.aap-sidebar-icon { width: 32px; height: 32px; }
.aap-sidebar-name { font-weight: 700; }
.aap-sidebar-descriptor { font-size: 0.875rem; opacity: 0.8; }

/* Active navigation item: inset limelight accent (component token nav.active.accent). */
.aap-nav .mud-nav-link.active { box-shadow: inset 4px 0 0 var(--mud-palette-primary); color: var(--mud-palette-drawer-text); }
.aap-nav .mud-nav-link:focus-visible { outline: 3px solid var(--mud-palette-primary); outline-offset: -3px; }

.aap-content { max-width: 1440px; margin: 0 auto; padding: 24px; }
.aap-page-header { margin-bottom: 32px; }
.aap-section-heading { font-weight: 700; margin-bottom: 8px; }
.aap-role-list { margin: 0; padding-left: 24px; }

/* Footer: full Aiden wordmark signs the product. */
.aap-footer { border-top: 1px solid var(--mud-palette-lines-default); padding: 16px 24px; display: flex; justify-content: flex-end; }
.aap-footer-logo { height: 24px; }

/* No-access page: a single, centred message. */
.aap-no-access-main { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 24px; box-sizing: border-box; }
.aap-no-access { max-width: 560px; display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.aap-no-access-logo { height: 32px; }

#blazor-error-ui { display: none; position: fixed; bottom: 0; left: 0; width: 100%; padding: 12px 24px; box-sizing: border-box; background: #FFFFFF; border-top: 1px solid #D3DAE1; z-index: 1000; }
#blazor-error-ui .dismiss { position: absolute; right: 16px; top: 8px; cursor: pointer; }

/* Role does not allow the page: a message inside the shell. */
.aap-page-not-allowed { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }

/* Secrets page (write-only): status table, editor and inline replace confirmation. */
.aap-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.aap-secrets-message { margin-bottom: 16px; }
.aap-secrets-table { margin-bottom: 24px; }
.aap-secret-actions { display: flex; gap: 8px; justify-content: flex-end; }
.aap-secret-editor { max-width: 560px; display: flex; flex-direction: column; gap: 16px; }
.aap-secret-editor-actions, .aap-inline-confirm { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.aap-inline-confirm { padding: 12px 16px; border: 1px solid var(--mud-palette-lines-default); border-radius: 4px; }
