/* SIFCOM Web - estilos propios (MudBlazor aporta el resto) */
html, body { font-family: Roboto, "Segoe UI", Arial, sans-serif; }

.sifcom-busqueda { max-width: 320px; }
.sifcom-fila-seleccionada { background-color: rgba(31, 78, 121, 0.10) !important; }
.sifcom-fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
/* Sólo consultar (fieldset deshabilitado): ningún combo se ve ni se comporta como activo (sin foco, flecha atenuada). */
.sifcom-fieldset:disabled .mud-select, .sifcom-fieldset:disabled .mud-autocomplete, .sifcom-fieldset:disabled .mud-switch { pointer-events: none; }
.sifcom-fieldset:disabled .mud-input-adornment .mud-icon-root,
.sifcom-fieldset:disabled .mud-select .mud-icon-root { color: var(--mud-palette-action-disabled) !important; }
.sifcom-tarjeta { height: 100%; }
.sifcom-chip-pendiente { height: 18px !important; font-size: 0.65rem !important; }
.sifcom-barra-sesion .mud-chip { margin: 0; }
.sifcom-chip-barra { color: #fff !important; border-color: rgba(255,255,255,.55) !important; }
.sifcom-chip-barra .mud-icon-root { color: #fff !important; }
.sifcom-logo-empresa { max-width: 100%; max-height: 180px; object-fit: contain; }

.sifcom-matriz th, .sifcom-matriz td { vertical-align: middle; }
.sifcom-matriz-nivel { text-align: center; width: 120px; }
.sifcom-matriz-modulo td { background: rgba(31, 78, 121, 0.06); font-weight: 500; }
.sifcom-matriz-antes { text-align: center; width: 140px; white-space: nowrap; }
/* Fila con cambios sin guardar (matriz de permisos de Usuarios) */
.sifcom-fila-cambiada, .sifcom-fila-cambiada td { background: rgba(255, 179, 0, 0.18) !important; }

/* ---- Login (SSR estático, sin componentes interactivos) ---- */
.sifcom-login-fondo {
    min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 16px;
    background: linear-gradient(135deg, #1F4E79 0%, #2c6aa0 60%, #e9eef4 60%);
}
.sifcom-login-tarjeta {
    width: 100%; max-width: 400px; background: #fff; border-radius: 10px; padding: 28px 28px 18px;
    box-shadow: 0 10px 30px rgba(0,0,0,.18); display: flex; flex-direction: column;
}
.sifcom-login-tarjeta h1 { font-size: 1.6rem; margin: 0; color: #1F4E79; }
.sifcom-login-tarjeta form { display: flex; flex-direction: column; }
.sifcom-login-marca { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.sifcom-login-marca p { margin: 0; color: #666; font-size: .85rem; }
.sifcom-login-logo {
    width: 48px; height: 48px; border-radius: 10px; background: #1F4E79; color: #fff;
    display: flex; align-items: center; justify-content: center; font-size: 1.6rem; font-weight: 700;
}
.sifcom-login-tarjeta label { font-size: .85rem; color: #444; margin: 10px 0 4px; }
.sifcom-login-campo {
    padding: 10px 12px; border: 1px solid #c8d0da; border-radius: 6px; font-size: 1rem; background: #fff;
}
.sifcom-login-campo:focus { outline: 2px solid #1F4E79; outline-offset: 0; border-color: #1F4E79; }
.sifcom-login-validacion { color: #c62828; font-size: .8rem; margin-top: 2px; }
.sifcom-login-boton {
    margin-top: 20px; padding: 11px; border: 0; border-radius: 6px; background: #1F4E79; color: #fff;
    font-size: 1rem; cursor: pointer;
}
.sifcom-login-boton:hover { background: #173b5c; }
.sifcom-login-error { background: #fdecea; color: #b71c1c; border-radius: 6px; padding: 10px 12px; margin-bottom: 8px; font-size: .9rem; }
.sifcom-login-aviso { background: #fff4e5; color: #8a4b00; border-radius: 6px; padding: 10px 12px; margin-bottom: 8px; font-size: .9rem; }
.sifcom-login-info { font-size: .95rem; margin: 0 0 6px; }
.sifcom-login-enlace { margin-top: 12px; text-align: center; color: #1F4E79; }
.sifcom-login-recordar { display: flex; align-items: center; gap: 6px; margin-top: 12px !important; }
.sifcom-login-pie { text-align: center; color: #999; font-size: .75rem; margin: 18px 0 0; }

#blazor-error-ui {
    background: #fff3cd; bottom: 0; box-shadow: 0 -1px 2px rgba(0,0,0,.2); display: none;
    left: 0; padding: .6rem 1.25rem .7rem 1.25rem; position: fixed; width: 100%; z-index: 2000;
}
#blazor-error-ui .dismiss { cursor: pointer; position: absolute; right: .75rem; top: .5rem; }

/* Maestros: campos con CharCase = ecUpperCase en el escritorio (el servidor también los guarda en mayúsculas). */
.sifcom-mayusculas input, .sifcom-mayusculas textarea { text-transform: uppercase; }

/* ---- Mensajería interna (/sistema/mensajes) ---- */
.sifcom-mensaje-no-leido td { font-weight: 700; }
.sifcom-mensaje-cuerpo { white-space: pre-wrap; word-break: break-word; font-size: .95rem; }
.sifcom-mensaje-hilo:hover { background: rgba(31, 78, 121, 0.06); }

/* ---- Edición modal (docs/BLOQUEO_EDICION.md): velo sobre la página; el documento en edición queda encima ----
   El velo está por encima del menú lateral (z 1100) y por debajo de la barra superior (1300, inerte), de las listas desplegables (1200),
   los diálogos (1400) y los avisos (1500). */
.sifcom-velo-edicion { position: fixed; inset: 0; z-index: 1150; background: rgba(255, 255, 255, .45); cursor: not-allowed; }
.sifcom-en-edicion { position: relative; z-index: 1160; }
.sifcom-edicion-modal .mud-appbar, .sifcom-edicion-modal .mud-drawer { opacity: .55; filter: grayscale(.5); }

/* ---- Vistas personalizadas (docs/CONFIGURACIONES.md): CampoVista y DialogoPersonalizarVista ---- */
.sifcom-vista-campo { display: contents; }
/* Vista previa: el campo oculto conserva su lugar como un recuadro rayado «<campo> · oculto». */
.sifcom-vista-oculto > * { position: relative; }
.sifcom-vista-oculto > * > * { visibility: hidden; }
.sifcom-vista-oculto > *::after {
    content: var(--sifcom-oculto-texto); position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
    padding: 0 8px; border: 1px dashed #e0a800; border-radius: 4px; color: #a07800; font-size: .8rem; text-align: center;
    background: repeating-linear-gradient(45deg, rgba(255, 213, 79, .22), rgba(255, 213, 79, .22) 6px, transparent 6px, transparent 12px);
}
.sifcom-vista-oculto > .mud-grid-item::after { inset: 8px; }
.sifcom-vista-col-oculta {
    color: #a07800 !important; font-weight: 500;
    background: repeating-linear-gradient(45deg, rgba(255, 213, 79, .18), rgba(255, 213, 79, .18) 6px, transparent 6px, transparent 12px);
}
.sifcom-pv .mud-dialog-title { border-bottom: 1px solid var(--mud-palette-lines-default); }
.sifcom-pv-cabecera { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; justify-content: space-between; }
.sifcom-pv-usuario { min-width: 260px; max-width: 380px; flex: 0 1 380px; }
.sifcom-pv-contenido { padding: 0 !important; }
.sifcom-pv-cuerpo { display: flex; min-height: 60vh; max-height: 72vh; }
.sifcom-pv-izq { width: 380px; flex: 0 0 380px; padding: 14px 16px; overflow-y: auto; border-right: 1px solid var(--mud-palette-lines-default); }
.sifcom-pv-der { flex: 1 1 auto; min-width: 0; padding: 22px 20px 16px; overflow-y: auto; background: var(--mud-palette-background-gray); position: relative; }
.sifcom-pv-previa-titulo { position: absolute; top: 4px; right: 20px; font-size: .78rem; color: var(--mud-palette-text-secondary); }
.sifcom-pv-tarjeta { background: var(--mud-palette-surface); border-radius: 8px; }
.sifcom-pv-buscar .mud-input-outlined-border { border-radius: 20px; }
.sifcom-pv-acciones { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 8px; }
.sifcom-pv-chip { text-transform: none; padding: 2px 10px; }
.sifcom-pv-grupo { font-size: .75rem; font-weight: 600; color: var(--mud-palette-primary); text-transform: uppercase; letter-spacing: .4px; margin: 14px 0 4px; }
.sifcom-pv-item { display: flex; align-items: center; justify-content: space-between; gap: 4px; min-height: 40px; padding: 2px 4px;
    border-bottom: 1px solid var(--mud-palette-lines-default); background: var(--mud-palette-surface); }
.sifcom-pv-item .mud-switch { margin: 0; }
.sifcom-pv-etiqueta { flex: 1 1 auto; cursor: default; }
.sifcom-pv-apagado .sifcom-pv-etiqueta { color: var(--mud-palette-text-disabled); }
.sifcom-pv-obligatorio { font-size: .8rem; color: var(--mud-palette-text-secondary); }
.sifcom-pv-asa { cursor: grab; color: var(--mud-palette-text-secondary); }
.sifcom-pv-arrastrando { opacity: .85; box-shadow: var(--mud-elevation-4); }
.sifcom-pv-columnas .mud-drop-zone { min-height: 40px; }
.sifcom-pv-tabla { overflow-x: auto; }
.sifcom-pv-pie { border-top: 1px solid var(--mud-palette-lines-default); justify-content: space-between !important; flex-wrap: wrap; gap: 8px; }
.sifcom-pv-pie-izq, .sifcom-pv-pie-der { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.sifcom-pv-contador { display: inline-block; background: var(--mud-palette-primary-hover); color: var(--mud-palette-primary); border-radius: 12px; padding: 3px 10px; font-size: .8rem; }
.sifcom-pv-lista-usuarios { max-height: 45vh; overflow-y: auto; }
@media (max-width: 960px) {
    .sifcom-pv-cuerpo { flex-direction: column; max-height: none; }
    .sifcom-pv-izq { width: auto; flex: 0 0 auto; border-right: 0; border-bottom: 1px solid var(--mud-palette-lines-default); }
    .sifcom-pv-usuario { max-width: none; flex: 1 1 100%; }
}

/* ---- Consola del proveedor (docs/PLATAFORMA.md): SSR estático ---- */
.plat-fondo { min-height: 100vh; background: #f3f5f8; font-family: Roboto, Arial, sans-serif; }
.plat-barra { display: flex; align-items: center; gap: 18px; background: #1F4E79; color: #fff; padding: 10px 20px; flex-wrap: wrap; }
.plat-marca { font-weight: 500; }
.plat-nav { display: flex; gap: 14px; flex: 1; }
.plat-nav a, .plat-barra a { color: #fff; text-decoration: none; }
.plat-nav a:hover { text-decoration: underline; }
.plat-salir button { background: transparent; color: #fff; border: 1px solid #fff8; border-radius: 4px; padding: 4px 10px; cursor: pointer; }
.plat-contenido { padding: 20px; max-width: 1400px; margin: 0 auto; }
.plat-tarjeta { background: #fff; border-radius: 8px; box-shadow: 0 1px 3px #0002; padding: 18px 22px; margin-bottom: 18px; }
.plat-login { max-width: 420px; margin: 60px auto; }
.plat-tarjeta h1 { font-size: 1.35rem; color: #1F4E79; margin: 0 0 8px; }
.plat-tarjeta h2 { font-size: 1.1rem; color: #1F4E79; margin: 16px 0 8px; }
.plat-titulo { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.plat-ayuda { color: #555; font-size: .9rem; }
.plat-boton { background: #1F4E79; color: #fff !important; border-radius: 4px; padding: 6px 12px; text-decoration: none; font-size: .9rem; }
.plat-form { display: flex; flex-direction: column; gap: 4px; }
.plat-form label { display: flex; flex-direction: column; font-size: .85rem; color: #444; margin-top: 8px; }
.plat-rejilla { max-width: 640px; }
.plat-form label.sifcom-login-recordar { flex-direction: row; }
.plat-tabla { width: 100%; border-collapse: collapse; font-size: .88rem; }
.plat-tabla th, .plat-tabla td { border-bottom: 1px solid #e3e6ea; padding: 6px 8px; text-align: left; vertical-align: top; }
.plat-tabla th { background: #eef2f7; }
.plat-tabla .num { text-align: right; white-space: nowrap; }
.plat-alerta { background: #fff8e1; }
.plat-excedido { background: #fdecea; }
.plat-ruta { font-family: monospace; font-size: .8rem; word-break: break-all; }
.plat-grafico { margin: 8px 0 12px; }
.plat-grafico svg { width: 100%; height: 160px; background: #fafbfc; border: 1px solid #e3e6ea; }
.plat-grafico rect { fill: #1F4E79; }
.plat-grafico figcaption { font-size: .8rem; color: #555; margin-top: 4px; }
