﻿/* Integración del shell con la barra Standard de XAF 25.2.5.
   Los paneles y botones nativos conservan su DOM, estados y adaptación. */
/* La marca procede de ContainsVisibleActionControl y VisibleChanged, no de
   Enabled ni de una estimación del DOM. Solo el dashboard sin acciones. */
.amedida-layout .amedida-view-surface > .view-header[data-empty-dashboard-toolbar="true"] ~ .app .main > .main-toolbar {
    display: none;
}

/* Mis datos: la acción Guardar está en la cabecera; la barra nativa no se muestra. */
.amedida-layout .amedida-view-surface > .view-header[data-own-profile="true"] ~ .app .main > .main-toolbar {
    display: none;
}

.amedida-layout .amedida-view-surface .app > .header.suite-header-relocated {
    display: none;
}

/* La hamburguesa de Amedida controla el mismo árbol de navegación. */
.amedida-layout .amedida-view-surface .app .sidebar,
.amedida-layout .amedida-view-surface .app .sidebar-sm-shadow,
.amedida-layout .amedida-view-surface .app .xaf-ribbon-hamburger-tab {
    display: none !important;
}

/* Una altura disponible: título + acciones + contenido. El scroll de la
   vista pertenece a XAF; el grid conserva su scroll horizontal/vertical. */
.amedida-layout .amedida-view-surface .app {
    position: relative;
    top: auto;
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    width: 100%;
    height: auto;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: var(--suite-shell-surface);
    color: var(--suite-shell-text);
}
.amedida-layout .amedida-view-surface .app > .xaf-main-layout,
.amedida-layout .amedida-view-surface .app .main {
    display: flex;
    flex: 1 1 0;
    min-height: 0;
    min-width: 0;
    margin: 0;
    padding: 0;
    width: 100%;
}
.amedida-layout .amedida-view-surface .app .main > .main-content {
    flex: 1 1 0;
    min-height: 0;
    min-width: 0;
    padding: 12px 0;
    box-sizing: border-box;
    scrollbar-gutter: stable;
    overflow: auto;
    overscroll-behavior: contain;
}
.amedida-layout .amedida-view-surface .app .main > .main-content > .grid-content {
    min-width: 0;
    /* Una pantalla muy baja puede desplazar la vista completa para que
       cabecera, filas y paginación sigan siendo accesibles. */
    min-height: 180px;
}

/* Variables Fluent documentadas: solo la barra y las acciones del shell,
   sin sustituir colores de validación ni estados deshabilitados. */
.amedida-layout .amedida-view-surface .app .main-toolbar,
.amedida-layout :is(#suite-header-actions-slot, #suite-theme-btn-slot) {
    --dxds-color-surface-neutral-default-rest: var(--suite-shell-surface);
    --dxds-color-surface-neutral-subdued-rest: var(--suite-shell-hover);
    --dxds-color-border-neutral-default-rest: var(--suite-shell-border);
    --dxds-color-content-neutral-default-rest: var(--suite-shell-text);
}
.amedida-layout .amedida-view-surface .main-toolbar .dxbl-toolbar {
    margin-bottom: 0 !important;
    border-radius: 8px;
}
.amedida-layout .amedida-view-surface .main-toolbar .dxbl-btn-toolbar {
    background: var(--suite-shell-surface);
    border: 1px solid var(--suite-shell-border);
    border-radius: 8px;
    box-shadow: none;
}
.amedida-layout .amedida-view-surface .app .main > .main-toolbar {
    padding: 8px 0;
    border-bottom: 1px solid var(--suite-shell-border);
}
.amedida-layout .amedida-view-surface .main-toolbar .dxbl-text-edit {
    border-radius: 6px;
}
.amedida-layout .amedida-view-surface .main-toolbar .dxbl-text-edit:focus-within {
    border-color: var(--suite-shell-focus) !important;
    box-shadow: 0 0 0 2px var(--suite-shell-accent-soft) !important;
}
.amedida-layout .amedida-view-surface .main-toolbar :is(button, a, input):focus-visible {
    outline: 2px solid var(--suite-shell-focus) !important;
    outline-offset: 2px;
}

/* Nodos reubicados por suiteHeaderActions.js: necesitan CSS compartido,
   porque no reciben el atributo de aislamiento del componente Razor. */
.amedida-layout #suite-theme-btn-slot,
.amedida-layout #suite-theme-btn-slot .theme-settings,
.amedida-layout #suite-theme-btn-slot .theme-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border-radius: 8px;
    color: var(--suite-shell-muted);
}
.amedida-layout #suite-theme-btn-slot :focus-visible {
    outline: 2px solid var(--suite-shell-focus) !important;
    outline-offset: 1px;
}
.amedida-layout #suite-header-actions-slot {
    flex-wrap: nowrap;
}
.amedida-layout #suite-header-actions-slot .header-right-side {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    width: auto;
    min-width: 0;
    padding: 0;
    overflow: visible;
}
/* El título de vista ya aparece como h1. Conservar el contexto del objeto
   en detalles y cualquier control interactivo que aporte una extensión. */
.amedida-layout:has(.view-header) #suite-header-actions-slot
    .view-caption-root:not(:has(.xaf-object-caption, button, a, input)) {
    display: none;
}
.amedida-layout #suite-theme-btn-slot .theme-settings.show-dropdown .settings-bar {
    max-width: 100vw;
}
.amedida-layout #suite-header-actions-slot #suite-empresa-wrapper {
    gap: 4px;
}
@media (max-width: 600px) {
    .amedida-layout .amedida-view-surface .app .main > .main-content { padding: 8px 0; }
}
@media (max-width: 420px) {
    .amedida-layout #suite-header-actions-slot .suite-avatar-initials { width: 30px; height: 30px; }
}

/* Mensajes de ShowMessage: XAF los pinta con su componente Alert
   (.xaf-alert + .alert-success|info|warning|danger), no con DxToast.
   Tarjeta clara con acento lateral; el color de estado solo va en acento e
   icono y el texto usa el color base del tema (contraste AA sobre blanco).
   El resumen oscuro de XAF (.xaf-alert-summary) no se modifica. */
.xaf-alerts-stack .xaf-alert:not(.xaf-alert-summary) {
    --suite-alert-accent: var(--suite-color-action-primary);
    box-sizing: border-box;
    border: 1px solid var(--suite-color-border);
    border-radius: 12px;
    background-color: var(--suite-color-surface);
    box-shadow: inset 4px 0 0 var(--suite-alert-accent), 0 4px 16px rgb(23 43 58 / 12%);
    color: var(--suite-color-text) !important;
    font-family: "Segoe UI", Inter, system-ui, sans-serif;
    font-size: var(--suite-control-font-size, 14px);
}
.xaf-alerts-stack .xaf-alert.alert-success:not(.xaf-alert-summary) { --suite-alert-accent: var(--suite-color-positive); }
.xaf-alerts-stack .xaf-alert.alert-info:not(.xaf-alert-summary)    { --suite-alert-accent: var(--suite-color-action-primary); }
.xaf-alerts-stack .xaf-alert.alert-warning:not(.xaf-alert-summary) { --suite-alert-accent: var(--suite-color-warning); }
.xaf-alerts-stack .xaf-alert.alert-danger:not(.xaf-alert-summary)  { --suite-alert-accent: var(--suite-color-danger); }
.xaf-alerts-stack .xaf-alert:not(.xaf-alert-summary) :is(.xaf-alert-title, .xaf-alert-header, .xaf-alert-message) {
    color: var(--suite-color-text) !important;
}
.xaf-alerts-stack .xaf-alert:not(.xaf-alert-summary) > .xaf-image {
    margin-left: 1rem;
    color: var(--suite-alert-accent) !important;
    fill: var(--suite-alert-accent) !important;
    opacity: 1;
}
.xaf-alerts-stack .xaf-alert:not(.xaf-alert-summary) .xaf-alert-button {
    color: var(--suite-color-muted);
    fill: var(--suite-color-muted);
    opacity: 1;
}
.xaf-alerts-stack .xaf-alert:not(.xaf-alert-summary) .xaf-alert-button:hover {
    color: var(--suite-color-text);
    fill: var(--suite-color-text);
}
.xaf-alerts-stack .xaf-alert:not(.xaf-alert-summary) .xaf-alert-button:focus-visible {
    outline: 2px solid var(--suite-color-focus);
    outline-offset: -2px;
    border-radius: 6px;
}
