@font-face { font-family:Sora; src:url('../plugins/sora/Sora[wght].ttf') format('truetype'); font-style:normal; font-weight:100 800; font-display:swap; }
:root { color-scheme:light; --lateral:252px; }
body { min-height:100vh; }
.rf-app .text-secondary { color:#55697b!important; }
.saltar-contenido { position:fixed; top:8px; left:16px; transform:translateY(-200%); z-index:2000; background:white; padding:12px; }
.saltar-contenido:focus { transform:none; }
.barra-lateral { position:fixed; inset:0 auto 0 0; width:var(--lateral); background:#fff; border-right:1px solid var(--rf-ui-border); display:flex; flex-direction:column; padding:25px 16px; z-index:20; overflow-y:auto; }
.marca { display:block; padding:0 8px 22px; }
.marca img { max-width:100%; object-fit:contain; }
.nav-seccion { font-size:.65rem; font-weight:700; letter-spacing:.1em; color:#55697b; padding:0 12px; margin:18px 0 10px; }
.barra-lateral .nav-link { display:flex; align-items:center; gap:12px; padding:12px; margin:3px 0; border-radius:9px; font-size:.82rem; font-weight:500; line-height:1.4; }
.barra-lateral .nav-link i { font-size:1.5rem; flex:0 0 24px; }
.barra-lateral .nav-link:hover { background:#f0f5f7; }
.barra-lateral .nav-link.active { color:#004e5d; background:#e5f3f4; font-weight:700; }
.lateral-pie { margin-top:auto; padding:32px 12px 0; font-weight:600; font-size:.75rem; }
.lateral-pie span { font-size:.65rem; font-weight:400; color:#55697b; }
.alternar-menu { margin-bottom:12px; }
@media (min-width:801px) { body.menu-compacto { --lateral:132px; } .menu-compacto .barra-lateral { padding-inline:10px; } .menu-compacto .nav-seccion,.menu-compacto .lateral-pie { display:none; } .menu-compacto .barra-lateral .nav-link { flex-direction:column; text-align:center; gap:4px; padding:8px 4px; font-size:.65rem; } .menu-compacto .marca { padding:0 0 12px; } }
@media (max-width:800px) { .menu-compacto .barra-lateral nav { display:none; } }
.cabecera { margin-left:var(--lateral); min-height:94px; padding:17px 30px; display:flex; gap:20px; align-items:center; justify-content:space-between; border-bottom:1px solid #d8e2e8; background:#fff; }
.contexto-global { display:flex; flex:1; gap:16px; max-width:800px; min-width:0; }
.contexto-global label { flex:1; min-width:0; font-weight:600; font-size:.72rem; }
.contexto-global .form-select { font-size:.82rem; }
.cuenta { display:flex; align-items:center; gap:12px; font-size:.75rem; }
.zona-principal { margin-left:var(--lateral); padding:32px; }
#contenido { max-width:1800px; margin:auto; min-height:65vh; min-width:0; }
#contenido:focus { outline:none; }
.pie-aplicacion { margin-left:var(--lateral); padding:20px 32px; font-size:.7rem; }
#aviso-conexion { margin-left:var(--lateral); }
.titulo-vista { margin-bottom:24px; }
.titulo-vista h1 { font-size:clamp(1.65rem,3vw,2.2rem); margin:12px 0; }
.titulo-vista p { max-width:850px; font-size:.9rem; }
.etiqueta { display:inline-block; color:#004e5d; background:#e5f3f4; font-size:.65rem; font-weight:700; padding:5px 9px; border-radius:5px; letter-spacing:.035em; }
.panel-estado,.tarjeta-fuente,.editor,.fragmento { background:white; border:1px solid #d8e2e8; border-radius:14px; padding:22px; min-width:0; }
h2 { font-size:1.25rem; } h3 { font-size:1rem; } h4 { font-size:.9rem; }
.metricas { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:22px 0; }
.metrica { padding:20px; background:#fff; border:1px solid #d8e2e8; border-radius:12px; display:flex; flex-direction:column; }
.metrica strong { color:#004e5d; font-size:1.9rem; }
.metrica span { font-size:.75rem; color:#55697b; }
.secciones-dobles { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:22px; margin-top:20px; }
.editor { margin:16px 0; }
.editor summary { cursor:pointer; font-size:.9rem; font-weight:600; }
.editor[open] summary { margin-bottom:20px; }
.formulario { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.campo { display:block; margin:0; min-width:0; }
.campo:has(textarea),.formulario>p,.acciones,.referencias-editor { grid-column:1 / -1; }
.campo .form-control,.campo .form-select { margin-top:6px; font-weight:400; }
.acciones,.accesos-proyecto { display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }
.nota-privada { padding:12px 16px; border-left:3px solid #7c9aa0; background:#eef4f5; font-size:.78rem; }
.nota-privada i { font-size:1.1rem; vertical-align:middle; margin-right:7px; }
.barra-filtros { display:flex; flex-wrap:wrap; gap:15px; align-items:end; margin:22px 0; }
.barra-filtros label { flex:1; min-width:180px; margin:0; }
.rejilla-tarjetas { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr)); gap:16px; }
.tarjeta-fuente>i { display:block; font-size:2rem; color:#004e5d; margin-bottom:14px; }
.tarjeta-fuente h3 { margin:12px 0; }
.tarjeta-fuente p { font-size:.78rem; }
.tarjeta-fuente .text-danger { overflow-wrap:anywhere; }
.evidencia-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:22px; align-items:start; }
.evidencia-layout:has(aside[hidden]) { grid-template-columns:1fr; }
.fragmento { margin-bottom:14px; }
.fragmento h3 { margin:12px 0; }
.literal { white-space:pre-wrap; overflow-wrap:anywhere; font-size:.84rem; max-height:180px; overflow:auto; }
blockquote { white-space:pre-wrap; overflow-wrap:anywhere; font-size:.82rem; padding:15px; background:#f4f7fb; border-left:3px solid #7c9aa0; max-height:450px; overflow:auto; }
.vacio { border:1px dashed #b8c8d2; border-radius:10px; padding:25px; color:#55697b; font-size:.85rem; }
.table { font-size:.78rem; min-width:540px; }
.table .btn { white-space:nowrap; overflow-wrap:normal; }
.table th { font-weight:600; color:#55697b; font-size:.72rem; }
.table td { max-width:400px; overflow-wrap:break-word; min-width:100px; }
.table-responsive { max-width:100%; }
@media (max-width:1400px) { .secciones-dobles { grid-template-columns:1fr; } }
[data-aviso]:not(:empty) { padding:12px; background:#e5f3f4; border-radius:8px; }
[hidden] { display:none!important; }
.datos-estado { display:grid; grid-template-columns:1fr 2fr; gap:12px; }
.datos-estado dd { overflow-wrap:anywhere; margin:0; }
.entrada { max-width:680px; }
#monitor-geo pre.text-wrap { white-space:pre-wrap!important; overflow-wrap:anywhere; }
#detalle-citas,#detalle-fuentes,#detalle-metadatos { overflow-wrap:anywhere; }
#monitor-geo .nav-tabs { flex-wrap:wrap; }
@media (max-width:1100px) { :root { --lateral:210px; } .zona-principal { padding:24px; } .secciones-dobles,.evidencia-layout { grid-template-columns:1fr; } .cabecera { padding:16px 24px; flex-wrap:wrap; } .cuenta { margin-left:auto; } }
@media (max-width:800px) { :root { --lateral:0px; } .barra-lateral { position:static; width:auto; padding:16px; border-right:0; border-bottom:1px solid #d8e2e8; } .marca { padding:0 0 12px; } .marca img { width:160px; height:40px; } .nav-seccion,.lateral-pie { display:none; } .barra-lateral nav { display:flex; gap:4px; overflow-x:auto; } .barra-lateral .nav-link { flex-shrink:0; padding:9px; font-size:.72rem; gap:7px; } .barra-lateral .nav-link i { font-size:1.2rem; flex-basis:20px; } .cabecera { padding:15px 18px; } .zona-principal { padding:22px 18px; } .contexto-global { width:100%; flex-basis:100%; gap:10px; } .metricas { gap:8px; } .metrica { padding:12px; } .metrica strong { font-size:1.6rem; } .metrica span { font-size:.65rem; } }
@media (max-width:480px) { .formulario { grid-template-columns:1fr; } .panel-estado,.editor,.fragmento { padding:16px; } .contexto-global { flex-direction:column; } .titulo-vista h1 { font-size:1.6rem; } .datos-estado { grid-template-columns:1fr; } .table td { min-width:95px; } }

/* El acceso no muestra el armazon del espacio de trabajo, ni durante el arranque. */
body:is(.sin-sesion,.vista-acceso) {
    min-height:100dvh; display:flex; flex-direction:column;
    background-color:#003b46;
    background-image:linear-gradient(120deg,rgba(0,46,56,.72),rgba(0,57,65,.32) 60%,rgba(6,38,46,.65)),url('/landing/assets/images/slide01_foto_arquitectura.jpg');
    background-size:cover; background-position:68% center; background-repeat:no-repeat;
}
:is(.sin-sesion,.vista-acceso) :is(.barra-lateral,.cabecera) { display:none; }
:is(.sin-sesion,.vista-acceso) :is(.zona-principal,.pie-aplicacion,#aviso-conexion) { margin-left:0; }
:is(.sin-sesion,.vista-acceso) .zona-principal { flex:1; display:grid; align-items:center; padding:48px 24px; }
:is(.sin-sesion,.vista-acceso) #contenido { width:100%; min-height:0; }
.acceso { width:100%; max-width:440px; margin:auto; }
.acceso__tarjeta { background:#fff; padding:32px; border:1px solid var(--rf-ui-border); border-radius:18px; box-shadow:var(--rf-ui-shadow); }
.acceso__marca { display:block; width:100%; max-width:340px; margin:0 auto 28px; }
.acceso__marca img { display:block; width:100%; height:auto; }
.acceso__campo { margin-bottom:22px; }
.acceso .form-label { font-size:.9375rem; margin-bottom:8px; }
.acceso .form-control { min-height:48px; font-size:1rem; }
.acceso .form-control.is-invalid { border-color:var(--rf-ui-red); }
.acceso .form-control.is-invalid:focus { box-shadow:0 0 0 .22rem rgba(179,45,45,.15); }
.acceso .invalid-feedback { margin:8px 0 0; color:var(--rf-ui-red); font-size:.8125rem; }
.acceso__enviar { width:100%; min-height:48px; }
#acceso-estado { margin:16px 0 0; font-size:.875rem; }
#acceso-estado:empty { display:none; }
.acceso__volver { display:block; width:fit-content; margin:20px auto 0; padding:8px; font-size:.875rem; }
.rf-app .acceso__volver { color:#fff; text-shadow:0 1px 4px rgba(0,31,39,.65); }
.rf-app .acceso__volver:focus-visible { outline:2px solid #fff; outline-offset:3px; border-radius:4px; }
.pie-aplicacion { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:24px 32px; border-top:1px solid #c4b27b; background:#282827; color:#d8d7cf; }
:is(.sin-sesion,.vista-acceso) .pie-aplicacion { background:rgba(29,38,39,.92); }
.rf-app .pie-aplicacion a { color:#e7e3d8; }
.pie-aplicacion__firma { display:flex; flex-direction:column; gap:8px; text-decoration:none; }
.pie-aplicacion__firma span { color:#c4c5bb; font-size:.625rem; letter-spacing:.08em; text-transform:uppercase; }
.pie-aplicacion__firma img { display:block; width:168px; height:auto; max-height:44px; object-fit:contain; object-position:left center; }
.pie-aplicacion__legal { font-size:.75rem; text-align:right; }
.pie-aplicacion__legal p { margin:0 0 8px; }
.pie-aplicacion__legal nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px 20px; }
.pie-aplicacion__legal a { display:inline-block; padding-block:8px; }
@media (max-width:600px) {
    :is(.sin-sesion,.vista-acceso) .zona-principal { padding:28px 16px; }
    .acceso__tarjeta { padding:24px; }
    .pie-aplicacion { flex-direction:column; align-items:center; gap:20px; padding:24px 16px; }
    .pie-aplicacion__firma { align-items:center; }
    .pie-aplicacion__legal { text-align:center; }
    .pie-aplicacion__legal nav { justify-content:center; }
}
