:root { --navy:#142e4c; --blue:#275e94; --background:#f4f6f9; --border:#dde4ec; --muted:#617186; --shadow:0 8px 30px #142e4c0d; }
* { box-sizing:border-box; }
html,body { margin:0; font-family:Inter,"Segoe UI",Arial,sans-serif; font-size:14px; color:var(--navy); background:var(--background); }
a { color:var(--blue); text-underline-offset:3px; }
a:hover { color:var(--theme-text); }
button,input,textarea { font:inherit; }
button { cursor:pointer; }
button:disabled { opacity:.6; cursor:wait; }
:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
h1,h2,h3,h4 { color:var(--navy); font-weight:600; }
h1 { font-size:28px; letter-spacing:-.03em; }
.portal-icon { flex-shrink:0; vertical-align:middle; }
.eyebrow { font-size:10px; letter-spacing:.13em; font-weight:700; color:var(--muted); }
.page-heading { display:flex; align-items:center; gap:12px; margin:0 0 26px; }
.page-heading .portal-icon { color:var(--blue); width:26px; height:26px; }
.containerDiv { width:100%; min-width:0; }
.portal-content .k-grid { border:1px solid var(--border); border-radius:12px; box-shadow:var(--shadow); width:100%; overflow:hidden; color:var(--navy); }
.portal-content .k-grid-header,.portal-content .k-grid-header .k-table-th { background:var(--theme-light); color:var(--navy); font-weight:600; }
.portal-content .k-grid .k-table-td { padding:14px 12px; border-color:#e8edf3; }
.portal-content .k-grid .k-table-row:hover { background:var(--theme-light); }
.portal-content .k-grid .k-grid-content,.portal-content .k-grid .k-grid-header-wrap { overflow-x:auto; }
.portal-content .k-grid .k-table { min-width:680px; }
.portal-content .k-pager { flex-wrap:wrap; gap:8px; background:white; border-color:var(--border); }
.portal-content .k-listview { border:0; background:transparent; }
.portal-content .k-listview-content { display:grid; gap:16px; }
.portal-content .k-listview-content > div { min-width:0; }
.form-container { width:100%; }
.form-box { max-width:900px; background:white; border:1px solid var(--border); border-radius:12px; padding:32px; box-shadow:var(--shadow); }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 24px; }
.form-group { display:flex; flex-direction:column; gap:8px; margin-bottom:22px; min-width:0; }
.form-group label { font-size:13px; font-weight:600; color:var(--navy); }
.form-group input,.form-group textarea,.form-control { width:100%; border:1px solid #c7d2df; border-radius:7px; padding:11px 12px; background:white; color:var(--navy); }
.form-group .k-textarea { width:100%; border-color:#c7d2df; border-radius:7px; }
.form-group .k-textarea textarea { border:0; }
.form-group textarea { resize:vertical; }
.form-group input:focus,.form-group textarea:focus { border-color:var(--blue); }
.button-container { display:flex; justify-content:flex-end; margin-top:12px; }
.btn-primary,.submit-button,.update-button { background:var(--blue); color:white; border:1px solid var(--blue); padding:11px 20px; border-radius:7px; font-weight:600; }
.btn-primary:hover,.submit-button:hover,.update-button:hover { background:var(--theme-hover); color:white; }
.btn-descarga,.btn-ver-detalle { border:1px solid var(--border); background:white; border-radius:7px; padding:8px; min-width:38px; min-height:38px; }
.btn-descarga:hover,.btn-ver-detalle:hover { background:var(--theme-light); }
.anuncio-card,.entidad-card,.contenido1 { border:1px solid var(--border); background:white; border-radius:12px; padding:26px; overflow-wrap:anywhere; }
.entidad-card { border-left:3px solid var(--blue); }
.entidad-card h6 { font-size:17px; color:var(--navy); }
.fecha-anuncio { color:var(--muted); font-size:12px; }
.divider { border:0; border-top:1px solid var(--border); margin:20px 0; opacity:1; }
.rich-content,.anuncio-card,.contenido1 { overflow-wrap:anywhere; overflow-x:auto; }
.rich-content img,.anuncio-card img,.contenido1 img { max-width:100%; height:auto; }
.empty-state { background:white; border:1px dashed #c7d2df; border-radius:12px; padding:38px 24px; text-align:center; color:var(--muted); }
.empty-state h3 { font-size:18px; margin:12px 0 8px; }
.empty-state p { margin:0; }
.popup { position:fixed; inset:0; z-index:100; background:#102a4680; display:grid; place-items:center; padding:20px; }
.popup-content { position:relative; background:white; padding:38px; border-radius:12px; box-shadow:var(--shadow); width:min(100%,520px); display:flex; align-items:center; gap:16px; }
.popup-content p { margin:0; }
.close { position:absolute; top:6px; right:10px; border:0; background:none; font-size:24px; color:var(--muted); }
.validation-message { color:#ac283c; font-size:13px; }
.invalid { border-color:#ac283c !important; }
.login-shell { min-height:100dvh; display:flex; align-items:center; justify-content:center; padding:32px 16px; background:radial-gradient(ellipse at top left,var(--theme-light),transparent 60%),var(--background); }
#blazor-error-ui { display:none; position:fixed; bottom:0; left:0; width:100%; background:#fff2df; color:#583d18; padding:18px 50px 18px 24px; z-index:1000; border-top:1px solid #dec49d; }
#blazor-error-ui .dismiss { position:absolute; right:16px; border:0; background:none; }
.blazor-error-boundary { background:#fcebed; padding:20px; color:#ac283c; }
.blazor-error-boundary::after { content:"No se ha podido mostrar este contenido."; }
@media(max-width:600px) { .form-grid { grid-template-columns:1fr; }.form-box { padding:22px 18px; }.page-heading { font-size:24px; }.anuncio-card,.contenido1,.entidad-card { padding:20px; }.form-group input,.form-group textarea { font-size:16px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }
h1:focus { outline:none; }.portal-content > .k-root { min-width:0; }

a { color:var(--theme-text,var(--blue)); }
.btn-primary,.submit-button,.update-button { color:var(--primary-contrast,white); }
.btn-primary:hover,.submit-button:hover,.update-button:hover { background:var(--blue); color:var(--primary-contrast,white); filter:brightness(.95); }
.portal-content .k-button-solid-primary,.portal-content .k-selected { background:var(--blue); border-color:var(--blue); color:var(--primary-contrast,white); }
.portal-content .k-input:focus-within { border-color:var(--blue); }
