.eptvc-library, .eptvc-directory, .eptvc-agenda { margin-block: 2rem; }
.eptvc-library__toolbar, .eptvc-directory__filter { margin: 0 0 1.25rem; }
.eptvc-library__toolbar label, .eptvc-directory__filter label { display: grid; gap: .5rem; color: #253246; font-weight: 700; max-width: 32rem; }
.eptvc-library__search, .eptvc-directory__search { border: 1px solid #c9d1dc; border-radius: .5rem; font: inherit; min-height: 2.75rem; padding: .6rem .8rem; }
.eptvc-library__grid, .eptvc-directory__grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.eptvc-document-card, .eptvc-contact-card { background: #fff; border: 1px solid #e1e6ed; border-radius: .75rem; box-shadow: 0 5px 17px rgba(15, 41, 68, .08); display: flex; gap: 1rem; padding: 1.25rem; }
.eptvc-document-card h3, .eptvc-contact-card h3, .eptvc-agenda__item h3 { font-size: 1.1rem; margin: 0 0 .4rem; }
.eptvc-document-card h3 a, .eptvc-contact-card h3, .eptvc-agenda__item h3 a { color: #253246; text-decoration: none; }
.eptvc-document-card h3 a:hover, .eptvc-agenda__item h3 a:hover { color: #d95d00; text-decoration: underline; }
.eptvc-document-card__icon { align-items: center; background: #fff0e5; border-radius: .5rem; color: #b34800; display: inline-flex; font-size: .72rem; font-weight: 800; height: 2.8rem; justify-content: center; letter-spacing: .06em; min-width: 2.8rem; }
.eptvc-document-card__code, .eptvc-contact-card__role { color: #b34800; font-size: .86rem; font-weight: 700; margin: 0 0 .4rem; }
.eptvc-document-card p, .eptvc-contact-card p { margin: .4rem 0; }
.eptvc-document-card__actions { margin-top: .8rem !important; }
.eptvc-button { background: #ff7700; border-radius: .4rem; color: #1e252d; display: inline-block; font-weight: 700; padding: .6rem .85rem; text-decoration: none; }
.eptvc-button:hover, .eptvc-button:focus { background: #e66100; color: #fff; }
.eptvc-agenda { border-top: 3px solid #ff7700; }
.eptvc-agenda__item { align-items: start; border-bottom: 1px solid #e1e6ed; display: grid; gap: 1rem; grid-template-columns: minmax(7.5rem, .55fr) 2fr; padding: 1rem 0; }
.eptvc-agenda__item time { color: #b34800; font-weight: 800; }
.eptvc-agenda__item p { margin: .35rem 0; }
.eptvc-contact-card { display: block; }
.eptvc-contact-card ul { list-style: none; margin: .8rem 0 0; padding: 0; }
.eptvc-contact-card li + li { margin-top: .35rem; }
.eptvc-contact-card a { color: #304a71; }
@media (max-width: 40rem) { .eptvc-agenda__item { grid-template-columns: 1fr; gap: .35rem; } }
.eptvc-contact-form { background: #fff; border: 1px solid #e1e6ed; border-radius: .75rem; margin-block: 2rem; padding: clamp(1.1rem, 3vw, 2rem); }
.eptvc-contact-form h2 { color: #253246; margin-top: 0; }
.eptvc-contact-form form { display: grid; gap: 1rem; }
.eptvc-contact-form form p { margin: 0; }
.eptvc-contact-form label { color: #253246; display: grid; font-weight: 700; gap: .35rem; }
.eptvc-contact-form input, .eptvc-contact-form textarea { border: 1px solid #c9d1dc; border-radius: .4rem; font: inherit; padding: .65rem .7rem; width: 100%; }
.eptvc-contact-form input:focus, .eptvc-contact-form textarea:focus { border-color: #ff7700; outline: 3px solid rgba(255, 119, 0, .18); }
.eptvc-honeypot { height: 0; left: -9999px; overflow: hidden; position: absolute; width: 0; }
.eptvc-form-notice { border-radius: .4rem; font-weight: 700; padding: .75rem; }
.eptvc-form-notice--success { background: #e7f6eb; color: #155e2c; }
.eptvc-form-notice--error { background: #fff0ed; color: #9e2c19; }

/* Biblioteca documental ampliada: filtros, categorías y visor PDF. */
.eptvc-library--enhanced { background: #fffaf6; border-radius: 1rem; padding: clamp(1.2rem, 3vw, 2.25rem); }
.eptvc-library__heading { max-width: 48rem; }
.eptvc-library__heading h2 { color: #21334b; font-family: Manrope, sans-serif; font-size: clamp(1.65rem, 3vw, 2.35rem); margin: .25rem 0 .55rem; }
.eptvc-library__heading > p:last-child { color: #607083; }
.eptvc-library__toolbar { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 50rem; }
.eptvc-library__toolbar select { background: #fff; border: 1px solid #c9d1dc; border-radius: .5rem; font: inherit; min-height: 2.75rem; padding: .6rem .8rem; }
.eptvc-document-card { align-items: flex-start; }
.eptvc-document-card__categories { color: #9f4500; font-size: .83rem; font-weight: 800; margin: 0 0 .35rem !important; }
.eptvc-document-card__actions { align-items: center; display: flex; flex-wrap: wrap; gap: .75rem; }
.eptvc-document-card__actions .eptvc-button { border: 0; cursor: pointer; font: inherit; }
.eptvc-document-download { color: #884000; font-size: .9rem; font-weight: 800; text-decoration: underline; }
.eptvc-library__empty { background: #fff; border: 1px dashed #e9a467; border-radius: .75rem; color: #536275; grid-column: 1 / -1; padding: 1.5rem; text-align: center; }
.eptvc-library__empty p { margin-bottom: 0; }
.eptvc-document-modal { align-items: center; background: rgba(17, 31, 48, .78); display: flex; inset: 0; justify-content: center; padding: 1rem; position: fixed; z-index: 100000; }
.eptvc-document-modal[hidden] { display: none; }
.eptvc-document-modal__dialog { background: #fff; border-radius: .8rem; box-shadow: 0 1rem 3rem rgba(0,0,0,.35); display: flex; flex-direction: column; height: min(88vh, 60rem); max-width: 70rem; overflow: hidden; width: min(96vw, 70rem); }
.eptvc-document-modal__header { align-items: center; background: #fff8f2; border-bottom: 1px solid #f0d6c0; display: flex; gap: 1rem; justify-content: space-between; padding: .85rem 1rem; }
.eptvc-document-modal__header h2 { color: #26364e; font-family: Manrope, sans-serif; font-size: 1rem; margin: 0; }
.eptvc-document-modal__close { background: #fff; border: 1px solid #d7b99f; border-radius: 50%; color: #803500; cursor: pointer; font-size: 1.45rem; height: 2rem; line-height: 1; width: 2rem; }
.eptvc-document-modal__frame { border: 0; flex: 1; min-height: 0; width: 100%; }
@media (max-width: 42rem) { .eptvc-library__toolbar { grid-template-columns: 1fr; } .eptvc-document-modal { padding: 0; } .eptvc-document-modal__dialog { border-radius: 0; height: 100vh; width: 100vw; } }
