/* Patrimonio · estilo «Liquid Glass» sobre Bootstrap 5.3 */

:root {
    --lg-fuente: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI Variable", "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;
    --lg-fondo: #eef2fb;
    --lg-texto: #1c2333;
    --lg-texto-suave: #5d6880;
    --lg-vidrio: rgba(255, 255, 255, .58);
    --lg-vidrio-fuerte: rgba(255, 255, 255, .78);
    --lg-vidrio-hover: rgba(255, 255, 255, .74);
    --lg-flotante: #fbfcff;
    --lg-borde: rgba(255, 255, 255, .75);
    --lg-borde-suave: rgba(28, 35, 51, .08);
    --lg-brillo: inset 0 1px 0 rgba(255, 255, 255, .85), inset 0 -1px 0 rgba(255, 255, 255, .25);
    --lg-sombra: 0 10px 40px -12px rgba(40, 52, 110, .22), 0 2px 8px rgba(40, 52, 110, .06);
    --lg-blur: blur(22px) saturate(180%);
    --lg-radio: 22px;
    --lg-radio-sm: 14px;
    --lg-acento: #4f6bff;
    --lg-acento-2: #9b5cff;
    --lg-acento-suave: rgba(79, 107, 255, .12);
    --lg-blob-1: #8fb6ff;
    --lg-blob-2: #d7a6ff;
    --lg-blob-3: #ffc6a8;
    --lg-blob-4: #9ef0d6;
    --lg-input: rgba(255, 255, 255, .62);
    --bs-body-font-family: var(--lg-fuente);
    --bs-primary: var(--lg-acento);
    --bs-primary-rgb: 79, 107, 255;
    --bs-link-color: var(--lg-acento);
    --bs-link-color-rgb: 79, 107, 255;
    --bs-border-radius: 12px;
}

[data-bs-theme="dark"] {
    --lg-fondo: #0b0f1d;
    --lg-texto: #e8ecf8;
    --lg-texto-suave: #9aa5c2;
    --lg-vidrio: rgba(28, 34, 56, .52);
    --lg-vidrio-fuerte: rgba(30, 37, 62, .78);
    --lg-vidrio-hover: rgba(44, 52, 84, .6);
    --lg-flotante: #1b2136;
    --lg-borde: rgba(255, 255, 255, .10);
    --lg-borde-suave: rgba(255, 255, 255, .07);
    --lg-brillo: inset 0 1px 0 rgba(255, 255, 255, .10), inset 0 -1px 0 rgba(255, 255, 255, .02);
    --lg-sombra: 0 14px 44px -14px rgba(0, 0, 0, .7), 0 2px 8px rgba(0, 0, 0, .25);
    --lg-acento: #7b8fff;
    --lg-acento-2: #b48cff;
    --lg-acento-suave: rgba(123, 143, 255, .16);
    --lg-blob-1: #2a4dff;
    --lg-blob-2: #8a2bff;
    --lg-blob-3: #ff5e7a;
    --lg-blob-4: #00c2a8;
    --lg-input: rgba(14, 18, 34, .55);
    --bs-body-bg: var(--lg-fondo);
    --bs-body-color: var(--lg-texto);
    --bs-primary-rgb: 123, 143, 255;
    --bs-link-color: var(--lg-acento);
    --bs-link-color-rgb: 123, 143, 255;
}

html, body { min-height: 100%; }
body {
    background: var(--lg-fondo);
    color: var(--lg-texto);
    font-family: var(--lg-fuente);
    -webkit-font-smoothing: antialiased;
    letter-spacing: -.005em;
}

/* Fondo fluido */
.lg-fondo { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.lg-fondo span {
    position: absolute; border-radius: 50%; filter: blur(70px); opacity: .55;
    animation: lg-flotar 28s ease-in-out infinite alternate;
}
[data-bs-theme="dark"] .lg-fondo span { opacity: .38; }
.lg-fondo span:nth-child(1) { width: 52vw; height: 52vw; left: -12vw; top: -14vw; background: var(--lg-blob-1); }
.lg-fondo span:nth-child(2) { width: 44vw; height: 44vw; right: -10vw; top: 6vh; background: var(--lg-blob-2); animation-duration: 34s; animation-delay: -6s; }
.lg-fondo span:nth-child(3) { width: 40vw; height: 40vw; left: 22vw; bottom: -18vw; background: var(--lg-blob-3); animation-duration: 38s; animation-delay: -12s; }
.lg-fondo span:nth-child(4) { width: 30vw; height: 30vw; right: 8vw; bottom: -8vw; background: var(--lg-blob-4); animation-duration: 30s; animation-delay: -18s; }
@keyframes lg-flotar {
    0%   { transform: translate(0, 0) scale(1); border-radius: 50% 46% 54% 48%; }
    50%  { transform: translate(6vw, 4vh) scale(1.12); border-radius: 42% 58% 46% 54%; }
    100% { transform: translate(-4vw, 8vh) scale(.94); border-radius: 56% 44% 52% 50%; }
}
@media (prefers-reduced-motion: reduce) { .lg-fondo span { animation: none; } }

/* Vidrio */
.glass, .card {
    background: var(--lg-vidrio);
    -webkit-backdrop-filter: var(--lg-blur);
    backdrop-filter: var(--lg-blur);
    border: 1px solid var(--lg-borde);
    border-radius: var(--lg-radio);
    box-shadow: var(--lg-sombra), var(--lg-brillo);
    color: var(--lg-texto);
}
.card { --bs-card-bg: transparent; --bs-card-border-color: transparent; }
.card-header, .card-footer { background: transparent; border-color: var(--lg-borde-suave); }
.card-header { padding: 1rem 1.25rem .75rem; }
.card-body { padding: 1.25rem; }
.glass-fuerte { background: var(--lg-vidrio-fuerte); }
.text-suave, .text-muted, .form-text { color: var(--lg-texto-suave) !important; }

/* Estructura */
.lg-app { display: flex; min-height: 100vh; padding: 16px; gap: 16px; }
.lg-lateral {
    width: 264px; flex-shrink: 0; position: sticky; top: 16px; height: calc(100vh - 32px);
    display: flex; flex-direction: column; padding: 18px 14px;
}
.lg-marca { display: flex; align-items: center; gap: 12px; padding: 4px 8px 18px; text-decoration: none; color: inherit; }
.lg-marca__logo {
    width: 42px; height: 42px; border-radius: 13px; display: grid; place-items: center; color: #fff; font-size: 1.25rem;
    background: linear-gradient(135deg, var(--lg-acento), var(--lg-acento-2));
    box-shadow: 0 8px 20px -6px rgba(79, 107, 255, .6), inset 0 1px 0 rgba(255, 255, 255, .45);
}
.lg-marca__titulo { font-weight: 700; font-size: 1.08rem; line-height: 1.1; }
.lg-marca__sub { font-size: .74rem; color: var(--lg-texto-suave); }
.lg-menu { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 4px; }
.lg-menu__titulo { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: var(--lg-texto-suave); padding: 14px 12px 6px; }
.lg-menu a {
    display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; text-decoration: none;
    color: var(--lg-texto); font-weight: 500; transition: background .2s, transform .2s;
}
.lg-menu a i { font-size: 1.1rem; opacity: .85; }
.lg-menu a:hover { background: var(--lg-vidrio-hover); }
.lg-menu a.activo {
    background: var(--lg-vidrio-fuerte); box-shadow: 0 6px 18px -8px rgba(40, 52, 110, .35), var(--lg-brillo);
    color: var(--lg-acento);
}
.lg-lateral__pie { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--lg-borde-suave); }
.lg-principal { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.lg-superior { display: flex; align-items: center; gap: 12px; padding: 10px 14px 10px 18px; position: sticky; top: 16px; z-index: 1020; }
.lg-superior h1 { font-size: 1.15rem; font-weight: 650; margin: 0; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lg-superior .btn { white-space: nowrap; flex-shrink: 0; }
.lg-contenido { padding-bottom: 24px; }

.lg-avatar {
    width: 36px; height: 36px; border-radius: 50%; display: inline-grid; place-items: center; font-weight: 650; font-size: .85rem;
    color: #fff; background: linear-gradient(135deg, var(--lg-acento-2), var(--lg-acento));
}

@media (max-width: 991.98px) {
    .lg-app { padding: 10px; gap: 10px; }
    .lg-lateral {
        position: fixed; z-index: 1045; left: 10px; top: 10px; height: calc(100vh - 20px);
        transform: translateX(-110%); transition: transform .3s cubic-bezier(.2, .8, .2, 1);
    }
    .lg-lateral.abierto { transform: none; }
    .lg-velo { position: fixed; inset: 0; z-index: 1040; background: rgba(10, 14, 30, .25); backdrop-filter: blur(2px); display: none; }
    .lg-velo.visible { display: block; }
    .lg-superior { top: 10px; }
}

/* Botones */
.btn { border-radius: 999px; font-weight: 550; padding: .5rem 1.05rem; }
.btn-sm { padding: .3rem .8rem; }
.btn-primary {
    --bs-btn-bg: var(--lg-acento); --bs-btn-border-color: transparent; --bs-btn-hover-border-color: transparent;
    background: linear-gradient(135deg, var(--lg-acento), var(--lg-acento-2)); border: 0;
    box-shadow: 0 8px 20px -8px rgba(79, 107, 255, .7), inset 0 1px 0 rgba(255, 255, 255, .35);
}
.btn-primary:hover, .btn-primary:focus-visible { filter: brightness(1.06); transform: translateY(-1px); }
.btn-glass {
    background: var(--lg-vidrio-fuerte); border: 1px solid var(--lg-borde); color: var(--lg-texto);
    -webkit-backdrop-filter: var(--lg-blur); backdrop-filter: var(--lg-blur); box-shadow: var(--lg-brillo);
}
.btn-glass:hover, .btn-glass:focus-visible, .btn-glass.active { background: var(--lg-vidrio-hover); color: var(--lg-acento); border-color: var(--lg-borde); }
.btn-icono { width: 38px; height: 38px; padding: 0; display: inline-grid; place-items: center; }
.btn-outline-danger { --bs-btn-border-color: rgba(220, 53, 69, .45); }

/* Formularios */
.form-control, .form-select, .ts-control, .input-group-text {
    background-color: var(--lg-input); border: 1px solid var(--lg-borde-suave); border-radius: 12px; color: var(--lg-texto);
    -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.input-group-text { color: var(--lg-texto-suave); }
.form-control:focus, .form-select:focus, .focus .ts-control {
    background-color: var(--lg-vidrio-fuerte); border-color: var(--lg-acento);
    box-shadow: 0 0 0 4px var(--lg-acento-suave);
}
.form-label { font-weight: 550; font-size: .86rem; margin-bottom: .35rem; }
.form-check-input:checked { background-color: var(--lg-acento); border-color: var(--lg-acento); }
textarea.form-control { min-height: 110px; }

/* Tom Select */
.ts-wrapper.form-select, .ts-wrapper.form-control { padding: 0; border: 0; background: none; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.ts-wrapper .ts-control { min-height: 40px; padding: .45rem 2.2rem .45rem .9rem; }
.ts-wrapper.multi .ts-control { padding-right: .9rem; }
.ts-wrapper.multi.has-items .ts-control { padding: .3rem .6rem .3rem .5rem; }
.ts-wrapper.form-select-sm .ts-control { min-height: 32px; padding: .25rem 2rem .25rem .7rem; font-size: .875rem; }
.ts-wrapper.js-subtipo { min-width: 150px; }
.ts-wrapper.single .ts-control { cursor: pointer; }
.ts-wrapper.multi .ts-control > .item {
    background: var(--lg-acento-suave); color: var(--lg-texto); border: 1px solid rgba(79, 107, 255, .25); border-radius: 999px; padding: 1px 9px;
}
.ts-wrapper.multi .ts-control > .item .remove { border-left-color: rgba(79, 107, 255, .25); }
/* Se monta en <body> (dropdownParent): dentro de los .glass y campos con backdrop-filter quedaba tapado por los siguientes. */
.ts-dropdown {
    background: var(--lg-flotante); border: 1px solid var(--lg-borde-suave); border-radius: 14px; overflow: hidden; color: var(--lg-texto);
    box-shadow: var(--lg-sombra); margin-top: 6px; z-index: 1015; min-width: 10rem;
}
body.modal-open .ts-dropdown { z-index: 1065; }
.ts-dropdown .ts-dropdown-content { padding: 6px; }
.ts-dropdown .option {
    padding: .5rem .9rem .5rem calc(.9rem + var(--nivel, 0) * 1rem); border-radius: 9px; line-height: 1.35;
}
.ts-dropdown .optgroup-header {
    background: var(--lg-flotante); color: var(--lg-acento); font-size: .72rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: .06em; padding: 10px .9rem 4px; position: sticky; top: -6px; z-index: 1;
}
.ts-dropdown .optgroup + .optgroup { border-top: 1px solid var(--lg-borde-suave); }
.ts-dropdown .no-results, .ts-dropdown .create { color: var(--lg-texto-suave); }
.ts-dropdown .active { background: var(--lg-acento-suave); color: var(--lg-texto); }
.ts-dropdown .option .op-ruta { color: var(--lg-texto-suave); font-size: .82em; }
.ts-control input { color: var(--lg-texto) !important; }

/* Pestañas tipo «píldora de vidrio» */
.lg-pestanas { display: flex; flex-wrap: nowrap; gap: 4px; padding: 5px; overflow-x: auto; scrollbar-width: none; border-radius: 999px; }
.lg-pestanas::-webkit-scrollbar { display: none; }
.lg-pestanas-caja { display: flex; align-items: center; gap: 2px; border-radius: 999px; }
.lg-pestanas-caja .lg-pestanas { flex: 1; min-width: 0; scroll-behavior: smooth; }
.lg-pestanas-flecha { display: none; flex: 0 0 auto; width: 36px; height: 36px; margin: 0 4px; }
.lg-pestanas-flecha:disabled { opacity: .35; }
.lg-pestanas-caja.desborda .lg-pestanas-flecha { display: inline-flex; align-items: center; justify-content: center; }
.lg-pestanas-caja.desborda .lg-pestanas {
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 18px, #000 calc(100% - 18px), transparent);
    mask-image: linear-gradient(90deg, transparent 0, #000 18px, #000 calc(100% - 18px), transparent);
}
.lg-pestanas .nav-item { flex: 0 0 auto; }
.lg-pestanas .nav-link {
    border-radius: 999px; color: var(--lg-texto-suave); font-weight: 550; white-space: nowrap; padding: .5rem 1rem; border: 0;
}
.lg-pestanas .nav-link .num {
    display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; font-size: .72rem; margin-right: 6px;
    background: var(--lg-borde-suave); color: var(--lg-texto-suave);
}
.lg-pestanas .nav-link.active { background: var(--lg-vidrio-fuerte); color: var(--lg-texto); box-shadow: 0 4px 16px -6px rgba(40, 52, 110, .3), var(--lg-brillo); }
.lg-pestanas .nav-link.active .num { background: linear-gradient(135deg, var(--lg-acento), var(--lg-acento-2)); color: #fff; }

.lg-seccion-titulo { font-size: .78rem; text-transform: uppercase; letter-spacing: .07em; color: var(--lg-texto-suave); font-weight: 650; margin: 0 0 .75rem; }

/* Estadísticas */
.lg-stat { padding: 18px 20px; display: flex; align-items: center; gap: 16px; }
.lg-stat__icono {
    width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; font-size: 1.4rem; color: #fff; flex-shrink: 0;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .4);
}
.lg-stat__valor { font-size: 1.75rem; font-weight: 700; line-height: 1; }
.lg-stat__texto { color: var(--lg-texto-suave); font-size: .85rem; }
.lg-grad-1 { background: linear-gradient(135deg, #5b7cff, #8a5bff); }
.lg-grad-2 { background: linear-gradient(135deg, #22c39a, #19a3c7); }
.lg-grad-3 { background: linear-gradient(135deg, #ff9a5a, #ff5e8a); }
.lg-grad-4 { background: linear-gradient(135deg, #f5b73b, #ff8a3d); }
.lg-barra { height: 8px; border-radius: 99px; background: var(--lg-borde-suave); overflow: hidden; }
.lg-barra > span { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--lg-acento), var(--lg-acento-2)); }

/* Tarjetas de ficha */
.lg-ficha { display: flex; flex-direction: column; overflow: hidden; height: 100%; text-decoration: none; color: inherit; transition: transform .25s, box-shadow .25s; }
.lg-ficha:hover { transform: translateY(-3px); box-shadow: 0 18px 44px -14px rgba(40, 52, 110, .35), var(--lg-brillo); color: inherit; }
.lg-ficha__img { aspect-ratio: 16 / 10; background: linear-gradient(135deg, var(--lg-acento-suave), rgba(155, 92, 255, .14)); display: grid; place-items: center; overflow: hidden; }
.lg-ficha__img img { width: 100%; height: 100%; object-fit: cover; }
.lg-ficha__img i { font-size: 2.6rem; color: var(--lg-acento); opacity: .55; }
.lg-ficha__cuerpo { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.lg-ficha__titulo { font-weight: 650; line-height: 1.25; }
.lg-chip {
    display: inline-flex; align-items: center; gap: 5px; padding: 2px 10px; border-radius: 999px; font-size: .75rem; font-weight: 550;
    background: var(--lg-borde-suave); color: var(--lg-texto-suave); white-space: nowrap;
}
.lg-chip--ok { background: rgba(34, 195, 154, .16); color: #14966f; }
.lg-chip--borrador { background: rgba(245, 183, 59, .2); color: #a8740b; }
.lg-chip--malo { background: rgba(255, 94, 122, .16); color: #d23a57; }
.lg-chip--regular { background: rgba(245, 183, 59, .2); color: #a8740b; }
.lg-chip--bueno { background: rgba(34, 195, 154, .16); color: #14966f; }
[data-bs-theme="dark"] .lg-chip--ok, [data-bs-theme="dark"] .lg-chip--bueno { color: #4fe0b6; }
[data-bs-theme="dark"] .lg-chip--borrador, [data-bs-theme="dark"] .lg-chip--regular { color: #ffcb63; }
[data-bs-theme="dark"] .lg-chip--malo { color: #ff8aa0; }

/* Tablas */
.table { --bs-table-bg: transparent; --bs-table-color: var(--lg-texto); --bs-table-border-color: var(--lg-borde-suave); --bs-table-hover-bg: var(--lg-vidrio-hover); margin: 0; }
.table > thead th { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--lg-texto-suave); font-weight: 650; }
.table td, .table th { vertical-align: middle; padding: .75rem 1rem; }

/* Elementos por sección (características) */
.lg-elemento { padding: 14px; border-radius: var(--lg-radio-sm); background: var(--lg-vidrio); border: 1px solid var(--lg-borde); box-shadow: var(--lg-brillo); position: relative; }
.lg-elemento + .lg-elemento { margin-top: 10px; }
.lg-elemento__quitar { position: absolute; top: 10px; right: 10px; }
.lg-grupo-nivel { font-weight: 650; font-size: .85rem; color: var(--lg-acento); margin: 14px 0 8px; display: flex; align-items: center; gap: 8px; }
.lg-grupo-nivel::after { content: ""; flex: 1; height: 1px; background: var(--lg-borde-suave); }
.lg-tabla-elementos { min-width: 720px; }
.lg-vacio { text-align: center; padding: 26px 12px; color: var(--lg-texto-suave); }
.lg-vacio i { font-size: 2rem; display: block; margin-bottom: 6px; opacity: .6; }

/* Galería */
.lg-galeria { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.lg-medio { overflow: hidden; border-radius: var(--lg-radio-sm); background: var(--lg-vidrio); border: 1px solid var(--lg-borde); box-shadow: var(--lg-brillo); display: flex; flex-direction: column; }
.lg-galeria--medios { grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); }
.lg-galeria--medios:empty { display: none; }
.lg-medio__vista { aspect-ratio: 16 / 9; display: grid; place-items: center; background: var(--lg-acento-suave); overflow: hidden; }
.lg-medio__vista--icono { aspect-ratio: auto; min-height: 96px; padding: 10px 0; }
.lg-medio__vista > a { display: grid; place-items: center; width: 100%; height: 100%; }
.lg-medio__vista img { width: 100%; height: 100%; object-fit: cover; cursor: zoom-in; }
.lg-medio__vista i { font-size: 2.4rem; color: var(--lg-acento); }
.lg-medio__cuerpo { padding: 10px 12px 0; flex: 1; }
.lg-medio__cuerpo .form-label { color: var(--lg-texto-suave); }
.lg-medio__cuerpo dl > div { padding: 2px 0; }
.lg-medio__pie { padding: 8px 10px; font-size: .82rem; display: flex; align-items: center; gap: 6px; }
.lg-medio__pie .titulo { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lg-medio__asa { cursor: grab; color: var(--lg-texto-suave); font-size: 1rem; }
.js-medio-estado { white-space: nowrap; }
.sortable-ghost { opacity: .35; }

/* Dropzone (subida por trozos) */
.dropzone.lg-dropzone {
    min-height: 0; padding: 14px; border: 2px dashed rgba(79, 107, 255, .35); border-radius: var(--lg-radio-sm);
    background: transparent; color: var(--lg-texto-suave); transition: background .2s, border-color .2s;
}
.dropzone.lg-dropzone:hover, .dropzone.lg-dropzone.dz-drag-hover { background: var(--lg-acento-suave); border-color: var(--lg-acento); color: var(--lg-texto); }
.dropzone.lg-dropzone .dz-message { margin: 8px 0; }
.dropzone.lg-dropzone .dz-message .dz-button { color: inherit; }
.dropzone.lg-dropzone .dz-message i { color: var(--lg-acento); }
.dropzone.lg-dropzone .dz-preview { margin: 8px; }
.dropzone.lg-dropzone .dz-preview .dz-image { border-radius: var(--lg-radio-sm); background: var(--lg-vidrio-fuerte); }
.dropzone.lg-dropzone .dz-preview.dz-file-preview .dz-image { background: linear-gradient(135deg, var(--lg-acento-suave), rgba(155, 92, 255, .18)); }
.dropzone.lg-dropzone .dz-preview .dz-details { color: var(--lg-texto); }
.dropzone.lg-dropzone .dz-preview .dz-details .dz-filename span, .dropzone.lg-dropzone .dz-preview .dz-details .dz-size span { background: var(--lg-vidrio-fuerte); }
.dropzone.lg-dropzone .dz-preview .dz-progress { background: var(--lg-borde-suave); }
.dropzone.lg-dropzone .dz-preview .dz-progress .dz-upload { background: linear-gradient(90deg, var(--lg-acento), var(--lg-acento-2)); }
.dropzone.lg-dropzone .dz-preview .dz-remove { color: var(--lg-acento); font-size: .8rem; text-decoration: none; margin-top: 4px; }
.dropzone.lg-dropzone .dz-preview .dz-error-message { top: 140px; border-radius: 10px; background: #d63a5a; }
.dropzone.lg-dropzone .dz-preview .dz-error-message::after { border-bottom-color: #d63a5a; }

/* Ficha (lectura) */
.lg-dato { display: grid; grid-template-columns: minmax(130px, 38%) 1fr; gap: 8px 14px; padding: 7px 0; border-bottom: 1px dashed var(--lg-borde-suave); font-size: .92rem; }
.lg-dato:last-child { border-bottom: 0; }
.lg-dato dt { color: var(--lg-texto-suave); font-weight: 500; }
.lg-dato dd { margin: 0; font-weight: 550; }
.lg-portada { border-radius: var(--lg-radio); overflow: hidden; aspect-ratio: 16 / 9; background: var(--lg-acento-suave); }
.lg-portada img { width: 100%; height: 100%; object-fit: cover; }
#mapaFicha, #mapaForm { height: 320px; border-radius: var(--lg-radio-sm); overflow: hidden; border: 1px solid var(--lg-borde); }
#mapaForm { height: 400px; }
.leaflet-control-layers, .leaflet-pm-toolbar .button-container a.leaflet-buttons-control-button { color: #1c2333; }

/* Barra de guardado */
.lg-barra-guardar { position: sticky; bottom: 16px; z-index: 1010; display: flex; align-items: center; gap: 10px; padding: 10px 14px; margin-top: 16px; }

/* Avisos */
.alert { border-radius: var(--lg-radio-sm); border: 1px solid var(--lg-borde); -webkit-backdrop-filter: var(--lg-blur); backdrop-filter: var(--lg-blur); }
.toast-container .toast { background: var(--lg-vidrio-fuerte); -webkit-backdrop-filter: var(--lg-blur); backdrop-filter: var(--lg-blur); border: 1px solid var(--lg-borde); border-radius: var(--lg-radio-sm); box-shadow: var(--lg-sombra); color: var(--lg-texto); }

/* Modal y menús */
.modal-content, .dropdown-menu {
    background: var(--lg-vidrio-fuerte); -webkit-backdrop-filter: var(--lg-blur); backdrop-filter: var(--lg-blur);
    border: 1px solid var(--lg-borde); border-radius: var(--lg-radio); box-shadow: var(--lg-sombra); color: var(--lg-texto);
}
.modal-backdrop.show { opacity: 1; background: rgba(15, 20, 40, .28); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.lg-confirmar .modal-dialog { max-width: 400px; }
.lg-confirmar .modal-content { background: var(--lg-flotante); }
.lg-confirmar__icono {
    width: 56px; height: 56px; margin: 0 auto; border-radius: 50%; display: grid; place-items: center; font-size: 1.6rem;
    background: var(--lg-acento-suave); color: var(--lg-acento);
}
.lg-confirmar--peligro .lg-confirmar__icono { background: rgba(220, 53, 69, .12); color: #dc3545; }
.lg-confirmar .modal-footer .btn { padding: .55rem 1rem; border-radius: 12px; font-weight: 600; }
.lg-confirmar .js-cancelar { background: var(--lg-borde-suave); border-color: transparent; box-shadow: none; }
.dropdown-menu { border-radius: 16px; padding: 6px; background: var(--lg-flotante); -webkit-backdrop-filter: none; backdrop-filter: none; }
.dropdown-item { border-radius: 10px; color: var(--lg-texto); }
.dropdown-item:hover, .dropdown-item:focus { background: var(--lg-acento-suave); color: var(--lg-texto); }
.modal-header, .modal-footer { border-color: var(--lg-borde-suave); }

/* Paginación */
.pagination { gap: 4px; margin: 0; }
.page-link { border-radius: 999px !important; border: 1px solid var(--lg-borde); background: var(--lg-vidrio); color: var(--lg-texto); min-width: 38px; text-align: center; }
.page-item.active .page-link { background: linear-gradient(135deg, var(--lg-acento), var(--lg-acento-2)); border-color: transparent; color: #fff; }

/* Login */
.lg-login { min-height: 100vh; display: grid; place-items: center; padding: 20px; }
.lg-login__panel { width: 100%; max-width: 410px; padding: 34px 30px 30px; }

/* Impresión */
@media print {
    .lg-fondo, .lg-lateral, .lg-superior, .no-imprimir, .lg-barra-guardar { display: none !important; }
    .lg-app { display: block; padding: 0; }
    body { background: #fff; color: #000; }
    .glass, .card { background: #fff !important; box-shadow: none !important; border: 1px solid #ccc !important; backdrop-filter: none !important; break-inside: avoid; }
    .lg-galeria { grid-template-columns: repeat(3, 1fr); }
    .lg-tabla-elementos { min-width: 0; }
}
