:root {
    --module-accent: var(--uea-green);
    --module-accent-dark: var(--uea-navy);
    --module-accent-soft: #edf5e6;
    --module-text: var(--uea-text);
    --module-muted: var(--uea-muted);
    --module-border: var(--uea-border);
    --module-surface: var(--uea-surface);
    --module-radius: .65rem;
    --module-space: 1rem;
}

.module-hub { color: var(--module-text); }
.module-header { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.1rem; margin-bottom: 1.25rem; background: var(--uea-surface-muted); border: 1px solid var(--module-border); border-radius: var(--module-radius); }
.module-header__icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 2.75rem; width: 2.75rem; height: 2.75rem; color: var(--module-accent); background: var(--module-accent-soft); border-radius: .55rem; font-size: 1.15rem; }
.module-header h1 { margin: 0; font-size: 1.45rem; font-weight: 600; line-height: 1.25; }
.module-header p { margin: .2rem 0 0; color: var(--module-muted); font-size: .92rem; }

.module-tabs > .nav-tabs { display: flex; flex-wrap: wrap; gap: .25rem; border-bottom-color: var(--module-border); }
.module-tabs > .nav-tabs .nav-link { min-height: 2.65rem; padding: .65rem .9rem; color: var(--uea-blue); border-radius: .45rem .45rem 0 0; white-space: nowrap; }
.module-tabs > .nav-tabs .nav-link:hover { color: var(--module-accent-dark); background: var(--uea-surface-muted); border-color: transparent; }
.module-tabs > .nav-tabs .nav-link.active { color: var(--module-accent-dark); font-weight: 600; background: var(--module-surface); border-color: var(--module-border) var(--module-border) var(--module-surface); box-shadow: inset 0 3px 0 var(--module-accent); }
.module-tabs > .nav-tabs .nav-link:focus-visible,
.module-card:focus-visible,
.module-state__retry:focus-visible { outline: 3px solid var(--uea-focus); outline-offset: 2px; }
.module-tab-content { padding: 1rem 0; }

.module-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(235px, 1fr)); gap: .85rem; }
.module-card { display: flex; align-items: center; min-height: 7rem; padding: 1rem; color: var(--module-text); background: var(--module-surface); border: 1px solid var(--module-border); border-radius: var(--module-radius); text-decoration: none; transition: border-color .15s ease, background-color .15s ease, transform .15s ease; }
.module-card:hover { color: var(--module-text); text-decoration: none; background: var(--uea-surface-muted); border-color: var(--uea-green); transform: translateY(-1px); }
.module-card:active { transform: translateY(0); background: var(--module-accent-soft); }
.module-card__icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 2.6rem; width: 2.6rem; height: 2.6rem; margin-right: .85rem; color: var(--module-accent); background: var(--module-accent-soft); border-radius: .5rem; }
.module-card__body { display: flex; flex: 1 1 auto; min-width: 0; flex-direction: column; }
.module-card__title { margin-bottom: .3rem; font-weight: 600; line-height: 1.25; }
.module-card__description { color: var(--module-muted); font-size: .86rem; line-height: 1.4; }
.module-card__arrow { margin-left: .65rem; color: var(--uea-blue); font-size: .75rem; }

.admin-eva-intro { display: flex; align-items: center; gap: .75rem; margin-bottom: .8rem; padding: .75rem .85rem; color: var(--module-text); background: var(--uea-surface-muted); border: 1px solid var(--module-border); border-radius: var(--module-radius); }
.admin-eva-intro__icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 2.25rem; width: 2.25rem; height: 2.25rem; color: var(--module-accent); background: var(--module-accent-soft); border-radius: .45rem; }
.admin-eva-intro h2 { margin: 0; font-size: 1rem; font-weight: 600; }
.admin-eva-intro p { margin: .15rem 0 0; color: var(--module-muted); font-size: .82rem; line-height: 1.35; }
.module-card-grid--compact { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: .65rem; }
.module-card--compact { min-height: 5.25rem; padding: .75rem .85rem; }
.module-card--compact .module-card__icon { flex-basis: 2.25rem; width: 2.25rem; height: 2.25rem; margin-right: .7rem; }
.module-card--compact .module-card__title { margin-bottom: .15rem; font-size: .94rem; }
.module-card--compact .module-card__description { font-size: .8rem; line-height: 1.3; }

.admin-resource-page { color: var(--uea-text); }
.admin-resource-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; padding: .8rem .9rem; background: var(--uea-surface); border: 1px solid var(--uea-border); border-left: 3px solid var(--uea-green); border-radius: .55rem; }
.admin-resource-header__main { display: flex; align-items: center; min-width: 0; gap: .75rem; }
.admin-resource-header__icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 2.35rem; width: 2.35rem; height: 2.35rem; color: var(--uea-green); background: var(--module-accent-soft); border-radius: .45rem; }
.admin-resource-header h1 { margin: 0; color: var(--uea-navy); font-size: 1.15rem; font-weight: 600; line-height: 1.25; }
.admin-resource-header p { margin: .12rem 0 0; color: var(--uea-muted); font-size: .8rem; line-height: 1.35; }
.admin-resource-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .35rem; }
.admin-resource-actions--bar { justify-content: flex-start; margin: 0 0 .65rem; padding: .55rem .65rem; background: var(--uea-surface); border: 1px solid var(--uea-border); border-radius: .5rem; }
.uea-btn { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-height: 34px; padding: .38rem .65rem; border-radius: .38rem; font-size: .78rem; font-weight: 600; box-shadow: none; transition: color .15s ease, background-color .15s ease, border-color .15s ease; }
.uea-btn--primary { color: #fff; background: var(--uea-navy); border-color: var(--uea-navy); }
.uea-btn--primary:hover, .uea-btn--primary:focus { color: #fff; background: var(--uea-blue); border-color: var(--uea-blue); }
.uea-btn--secondary { color: var(--uea-navy); background: var(--uea-surface); border-color: var(--uea-border); }
.uea-btn--secondary:hover, .uea-btn--secondary:focus { color: var(--uea-navy); background: var(--uea-surface-muted); border-color: var(--uea-green); }
.uea-btn--positive { color: #fff; background: var(--uea-green); border-color: var(--uea-green); }
.uea-btn--positive:hover, .uea-btn--positive:focus { color: #fff; background: var(--uea-navy); border-color: var(--uea-navy); }
.uea-btn:focus-visible, .uea-icon-action:focus-visible { outline: 3px solid var(--uea-focus); outline-offset: 2px; }
.uea-btn:disabled, .uea-icon-action:disabled { cursor: wait; opacity: .58; }
.admin-data-card { overflow: hidden; background: var(--uea-surface); border: 1px solid var(--uea-border); border-radius: .6rem; box-shadow: 0 1px 2px rgba(25, 59, 102, .04); }
.admin-data-card .table-responsive { margin-bottom: 0; }
.admin-grid { margin-bottom: 0; }
.admin-grid .table { margin-bottom: 0; color: var(--uea-text); font-size: .8rem; table-layout: auto; }
.admin-grid .table thead th { padding: .62rem .7rem; color: var(--uea-navy); background: var(--uea-surface-muted); border-top: 0; border-bottom: 1px solid var(--uea-border); font-size: .76rem; font-weight: 600; vertical-align: middle; }
.admin-grid .table thead th a { display: inline-flex; align-items: center; gap: .25rem; color: var(--uea-navy); text-decoration: none; }
.admin-grid .table thead th a:hover { color: var(--uea-green); }
.admin-grid .table td { padding: .62rem .7rem; background: var(--uea-surface); border-top: 1px solid var(--uea-border); vertical-align: middle; transition: background-color .15s ease; }
.admin-grid .table-hover tbody tr:hover td { background: #f7f9fa; }
.admin-grid .filters td { padding: .45rem .7rem; background: #fbfcfc; border-top: 0; border-bottom: 1px solid var(--uea-border); }
.admin-grid .filters input, .admin-grid .filters select { height: 30px; padding: .25rem .45rem; color: var(--uea-text); border-color: var(--uea-border); border-radius: .3rem; font-size: .75rem; }
.admin-grid .filters input:focus, .admin-grid .filters select:focus { border-color: var(--uea-green); box-shadow: 0 0 0 .15rem var(--uea-focus); }
.admin-grid .filters .select2-container { min-width: 145px; font-size: .75rem; }
.admin-grid .filters .select2-container--bootstrap .select2-selection { min-height: 30px; color: var(--uea-text); border-color: var(--uea-border); border-radius: .3rem; box-shadow: none; }
.admin-grid .filters .select2-container--bootstrap .select2-selection--single { height: 30px; padding: .28rem 1.45rem .28rem .45rem; line-height: 1.2; }
.admin-grid .filters .select2-container--bootstrap.select2-container--focus .select2-selection,
.admin-grid .filters .select2-container--bootstrap.select2-container--open .select2-selection { border-color: var(--uea-green); box-shadow: 0 0 0 .15rem var(--uea-focus); }
.select2-container--bootstrap .select2-results__option--highlighted[aria-selected] { color: #fff; background: var(--uea-navy); }
.select2-container--bootstrap .select2-results__option[aria-selected=true] { color: var(--uea-navy); background: var(--module-accent-soft); }
.admin-grid .is-active-row td { background: var(--module-accent-soft); }
.admin-grid .is-active-row:hover td { background: #e6f1de; }
.admin-grid__serial { width: 2.5rem; color: var(--uea-muted); text-align: center; }
.admin-grid__name { color: var(--uea-navy); font-weight: 600; }
.admin-grid__url { display: inline-block; max-width: 270px; overflow: hidden; color: var(--uea-blue); text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; }
.admin-grid__url:hover { color: var(--uea-navy); }
.admin-grid-thumbnail { display: block; width: 76px; height: 42px; object-fit: cover; border: 1px solid var(--uea-border); border-radius: .3rem; }
.admin-grid__description { min-width: 240px; max-width: 440px; color: var(--uea-muted); line-height: 1.35; }
.admin-grid-actions { width: 1%; min-width: 148px; white-space: nowrap; }
.admin-grid-actions__group { display: inline-flex; align-items: center; gap: .25rem; }
.uea-icon-action { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 0; color: var(--uea-blue); background: transparent; border: 1px solid transparent; border-radius: .35rem; font-size: .74rem; line-height: 1; text-decoration: none; transition: color .15s ease, background-color .15s ease, border-color .15s ease; }
.uea-icon-action:hover, .uea-icon-action:focus { color: var(--uea-navy); background: var(--module-accent-soft); border-color: #cfe2c1; text-decoration: none; }
.uea-icon-action--positive { color: var(--uea-green); }
.uea-icon-action--danger { color: #9b2c2c; }
.uea-icon-action--danger:hover, .uea-icon-action--danger:focus { color: #842029; background: #fff5f5; border-color: #c97b82; }
.uea-status { display: inline-flex; align-items: center; min-height: 23px; padding: .18rem .48rem; border: 1px solid transparent; border-radius: 999px; font-size: .7rem; font-weight: 600; line-height: 1; }
.uea-status--active { color: #356b13; background: var(--module-accent-soft); border-color: #b8d7a0; }
.uea-status--neutral { color: var(--uea-muted); background: var(--uea-surface-muted); border-color: var(--uea-border); }
.uea-status--error { color: #842029; background: #fff5f5; border-color: #e6b8bc; }
.admin-grid-empty { padding: 2rem 1rem !important; color: var(--uea-muted); background: var(--uea-surface-muted); text-align: center; }
.admin-grid-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 48px; padding: .5rem .7rem; color: var(--uea-muted); background: var(--uea-surface); border-top: 1px solid var(--uea-border); }
.admin-grid-summary { margin: 0; font-size: .75rem; }
.admin-grid-footer .pagination { margin: 0; }
.admin-grid-pagination .page-link { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 30px; margin-left: .25rem; padding: .25rem .45rem; color: var(--uea-navy); background: var(--uea-surface); border: 1px solid var(--uea-border); border-radius: .3rem !important; font-size: .75rem; }
.admin-grid-pagination .page-link:hover, .admin-grid-pagination .page-link:focus { color: var(--uea-navy); background: var(--module-accent-soft); border-color: var(--uea-green); box-shadow: none; }
.admin-grid-pagination .active .page-link { color: #fff; background: var(--uea-navy); border-color: var(--uea-navy); }
.admin-grid-pagination .disabled .page-link { color: #a6afb8; background: var(--uea-surface-muted); border-color: var(--uea-border); }
.admin-inline-feedback, .admin-action-result { color: var(--uea-muted); font-size: .76rem; }
.admin-inline-feedback:not(:empty) { margin-top: .65rem; padding: .55rem .7rem; border: 1px solid var(--uea-border); border-radius: .4rem; }
.admin-inline-feedback.is-success, .admin-action-result.is-success { color: #356b13; }
.admin-inline-feedback.is-error, .admin-action-result.is-error { color: #842029; }
.admin-action-result:not(:empty) { display: inline-block; max-width: 240px; margin-left: .35rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; }
.admin-alert { margin-bottom: .65rem; padding: .55rem .75rem; border-radius: .4rem; font-size: .8rem; }
.module-grid-page > .alert-info { margin-bottom: .8rem; padding: .8rem .9rem; color: var(--uea-navy); background: var(--uea-surface); border: 1px solid var(--uea-border); border-left: 3px solid var(--uea-green); border-radius: .55rem; }
.module-grid-page > .alert-info h3 { margin: 0; font-size: 1.15rem; font-weight: 600; }
.module-grid-page .panel-primary, .module-grid-page .card { border-color: var(--uea-border); border-radius: .6rem; box-shadow: 0 1px 2px rgba(25, 59, 102, .04); }
.module-grid-page .panel-primary > .panel-heading, .module-grid-page .kv-panel-before { color: var(--uea-navy); background: var(--uea-surface); border-color: var(--uea-border); }
.module-grid-page .kv-panel-before { padding: .55rem .7rem; }
.module-grid-page .btn { border-radius: .35rem; box-shadow: none; }
.module-grid-page .btn-primary, .module-grid-page .btn-info { color: #fff; background: var(--uea-navy); border-color: var(--uea-navy); }
.module-grid-page .btn-primary:hover, .module-grid-page .btn-info:hover { color: #fff; background: var(--uea-blue); border-color: var(--uea-blue); }
.module-grid-page .btn-success { color: #fff; background: var(--uea-green); border-color: var(--uea-green); }
.module-grid-page .btn-warning { color: var(--uea-navy); background: var(--uea-surface); border-color: var(--uea-border); }
.module-grid-page .btn-warning:hover { background: var(--module-accent-soft); border-color: var(--uea-green); }
.module-grid-page .admin-grid td .btn { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; min-height: 30px; padding: .28rem .45rem; font-size: .75rem; }

.module-state { display: flex; align-items: center; justify-content: center; gap: .55rem; min-height: 7rem; padding: 1.25rem; color: var(--module-muted); background: var(--uea-surface-muted); border: 1px dashed var(--module-border); border-radius: var(--module-radius); text-align: center; }
.module-state--error { color: #842029; background: #fff5f5; border-color: #e6b8bc; }
.module-state__retry { margin-left: .35rem; }
.module-loading-lines { width: min(36rem, 100%); }
.module-loading-line { height: .8rem; margin: .6rem 0; overflow: hidden; background: #e6ebee; border-radius: 999px; }
.module-loading-line:nth-child(2) { width: 82%; }
.module-loading-line:nth-child(3) { width: 64%; }

@media (max-width: 767.98px) {
    .module-header { align-items: flex-start; padding: .85rem; }
    .module-header h1 { font-size: 1.25rem; }
    .module-tabs > .nav-tabs { flex-wrap: nowrap; max-width: 100%; overflow-x: auto; overflow-y: hidden; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
    .module-tabs > .nav-tabs .nav-item { flex: 0 0 auto; }
    .module-card-grid { grid-template-columns: 1fr; }
    .module-card { min-height: 6.25rem; }
    .module-card--compact { min-height: 5.25rem; }
    .admin-eva-intro { align-items: flex-start; }
    .admin-resource-header { align-items: stretch; flex-direction: column; }
    .admin-resource-header__main { align-items: flex-start; }
    .admin-resource-actions { justify-content: flex-start; }
    .admin-resource-actions .uea-btn { flex: 1 1 auto; }
    .admin-data-card { overflow: visible; border: 0; }
    .admin-data-card .table-responsive { border: 1px solid var(--uea-border); border-radius: .5rem; }
    .admin-grid__url { max-width: 190px; }
    .admin-grid-footer { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    .module-card { transition: none; }
}
