:root{--lime:#8dff00;--lime-dark:#6dcc00;--ink:#0a0d0b;--soft:#f2f5f1;--line:#dfe6dd;--muted:#647067;--white:#fff;--danger:#a61f2b;--shadow:0 24px 70px rgba(8,18,10,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Montserrat,Arial,sans-serif;color:var(--ink);background:#f5f7f4}a{text-decoration:none;color:inherit}button,input{font:inherit}
.login-page{background:#070a08}.login-layout{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.login-hero{position:relative;display:flex;align-items:flex-end;padding:clamp(32px,6vw,90px);background:linear-gradient(120deg,#030503,#172019);overflow:hidden}.login-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(141,255,0,.22),transparent 34%),linear-gradient(135deg,transparent 45%,rgba(141,255,0,.08));}.hero-overlay{position:absolute;width:520px;height:520px;border:1px solid rgba(141,255,0,.22);border-radius:50%;right:-130px;top:-130px;box-shadow:0 0 0 90px rgba(141,255,0,.025),0 0 0 180px rgba(141,255,0,.018)}.hero-content{position:relative;max-width:680px;color:#fff}.hero-logo{display:block;width:min(460px,82%);height:auto;margin-bottom:54px}.eyebrow{font-weight:800;letter-spacing:.18em;font-size:.76rem;color:var(--lime);margin:0 0 18px}.hero-content h1{font-size:clamp(2.2rem,4vw,4.6rem);line-height:1.04;margin:0 0 24px;max-width:760px}.hero-content>p:last-child{font-size:1.08rem;line-height:1.7;color:#cbd3cc;max-width:580px}
.login-panel{display:grid;place-items:center;padding:40px;background:#f4f6f3}.login-card{width:min(460px,100%);background:#fff;padding:clamp(28px,4vw,52px);border-radius:24px;box-shadow:var(--shadow)}.pill{display:inline-flex;background:#eaffd1;color:#345f00;font-size:.7rem;font-weight:800;letter-spacing:.12em;padding:8px 12px;border-radius:999px}.login-heading h2{font-size:2rem;margin:18px 0 8px}.login-heading p{color:var(--muted);line-height:1.6;margin:0 0 30px}.login-card label{display:grid;gap:9px;font-size:.82rem;font-weight:700;margin:18px 0}.login-card input{width:100%;border:1px solid var(--line);background:#fafcf9;padding:15px 16px;border-radius:11px;outline:none;transition:.2s}.login-card input:focus{border-color:var(--lime-dark);box-shadow:0 0 0 4px rgba(141,255,0,.15);background:#fff}.btn{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:10px;padding:13px 18px;font-weight:800;cursor:pointer}.btn-primary{background:var(--lime);color:#101510}.btn-primary:hover{background:#7ee600}.btn-block{width:100%;margin-top:12px}.btn-outline{border:1px solid #303a32;color:#fff;background:transparent;font-size:.78rem}.support{text-align:center;color:#7b857d;font-size:.73rem;line-height:1.5;margin:20px 0 0}.alert{padding:13px 15px;border-radius:10px;font-size:.8rem;line-height:1.5}.alert-error{background:#fff0f1;color:var(--danger);border:1px solid #f4cbd0}
.topbar{min-height:84px;padding:13px clamp(20px,5vw,72px);background:#080b09;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand img{width:230px;max-height:58px;object-fit:contain}.userbox{display:flex;align-items:center;gap:22px;color:#fff}.userbox>div{display:grid;text-align:right;gap:3px}.userbox strong{font-size:.88rem}.userbox span{font-size:.7rem;color:#9ba59d}.shell{width:min(1320px,calc(100% - 40px));margin:0 auto;padding:48px 0 70px}.welcome{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding:34px 0 40px;border-bottom:1px solid var(--line)}.eyebrow.dark{color:#4c8500}.welcome h1{font-size:clamp(2rem,4vw,3.6rem);line-height:1.05;margin:0 0 13px}.welcome p{color:var(--muted);line-height:1.6;margin:0;max-width:730px}.status-dot{white-space:nowrap;background:#e9f8d9;color:#376700;border-radius:999px;padding:10px 14px;font-size:.72rem;font-weight:800}.status-dot:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#63b600;margin-right:8px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:28px 0}.stats-grid.two{grid-template-columns:repeat(2,1fr)}.stat-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:25px;display:grid;gap:8px;min-height:160px;box-shadow:0 10px 28px rgba(8,20,10,.04)}.stat-card.accent{background:var(--lime);border-color:var(--lime)}.stat-card span{font-size:.78rem;font-weight:700;color:#526056}.stat-card strong{font-size:3rem;line-height:1}.stat-card small{font-size:.72rem;color:#69736b}.stat-card.accent span,.stat-card.accent small{color:#294500}.module-grid{display:grid;gap:14px;margin-top:34px}.module-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:22px}.module-card.featured{border-left:5px solid var(--lime-dark)}.module-number{display:grid;place-items:center;width:50px;height:50px;background:#101410;color:var(--lime);border-radius:13px;font-weight:800}.module-card h2{font-size:1.08rem;margin:0 0 7px}.module-card p{color:var(--muted);font-size:.82rem;line-height:1.55;margin:0}.coming{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;background:#edf1ec;color:#6b756d;padding:8px 11px;border-radius:999px}.footer{background:#0a0d0b;color:#8d978f;display:flex;justify-content:space-between;gap:20px;padding:22px clamp(20px,5vw,72px);font-size:.68rem}
@media(max-width:900px){.login-layout{grid-template-columns:1fr}.login-hero{min-height:48vh;padding:38px 26px}.hero-logo{width:300px;margin-bottom:35px}.login-panel{padding:28px 18px 45px}.stats-grid,.stats-grid.two{grid-template-columns:1fr}.module-card{grid-template-columns:50px 1fr}.coming{grid-column:2;justify-self:start}.userbox>div{display:none}}
@media(max-width:560px){.topbar{padding:12px 16px}.brand img{width:170px}.btn-outline{padding:10px 12px}.shell{width:min(100% - 26px,1320px);padding-top:25px}.welcome{align-items:flex-start;flex-direction:column}.footer{flex-direction:column}.login-card{border-radius:18px;padding:27px 22px}.hero-content h1{font-size:2.15rem}.module-card{padding:20px;gap:14px}.module-number{width:44px;height:44px}}
.module-link{text-decoration:none;color:inherit;transition:.2s}.module-link:hover{transform:translateY(-2px);border-color:#b9d59f;box-shadow:0 14px 34px rgba(8,20,10,.07)}.coming.ready{background:#eaffd1;color:#3c7100}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:25px 0 34px;border-bottom:1px solid var(--line)}.page-heading h1{font-size:clamp(2rem,4vw,3.4rem);margin:0 0 12px}.page-heading>div>p:last-child{color:var(--muted);max-width:780px;line-height:1.6;margin:0}.back-link{display:inline-block;color:#516056;text-decoration:none;font-size:.78rem;font-weight:700;margin-bottom:25px}.page-alert{margin:22px 0}.alert-success{background:#effbe4;color:#376700;border:1px solid #ceeab4}.admin-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:26px 0 38px}.admin-summary>div{background:#fff;border:1px solid var(--line);border-radius:15px;padding:19px 22px;display:flex;align-items:center;justify-content:space-between}.admin-summary span{font-size:.76rem;color:var(--muted);font-weight:700}.admin-summary strong{font-size:1.7rem}.management-section{margin:42px 0}.section-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:17px}.section-title-row .eyebrow{margin-bottom:8px}.section-title-row h2{font-size:1.55rem;margin:0}.record-count{font-size:.72rem;color:var(--muted);font-weight:700}.cards-list{display:grid;gap:12px}.management-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:22px}.entity-main{display:flex;align-items:center;gap:16px;min-width:0}.entity-icon{display:grid;place-items:center;flex:0 0 48px;height:48px;border-radius:12px;background:#101410;color:var(--lime);font-weight:800}.entity-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.entity-main h3{margin:0;font-size:1rem}.entity-main p{margin:5px 0;color:var(--muted);font-size:.78rem}.entity-main small{font-size:.69rem;color:#839087}.state{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:.64rem;font-weight:800}.state.active{background:#eaffd1;color:#3b7100}.state.inactive{background:#f1f2f1;color:#737d75}.card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.card-actions form,.table-actions form{margin:0}.btn-soft{background:#eff3ee;color:#344137}.btn-ghost{background:transparent;color:#6d786f;border:1px solid var(--line)}.empty-state{background:#fff;border:1px dashed #cdd7cf;border-radius:16px;padding:32px;text-align:center;color:var(--muted)}.empty-state strong{display:block;color:#26302a;margin-bottom:7px}.user-table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:16px}.user-table{width:100%;border-collapse:collapse;min-width:820px}.user-table th,.user-table td{text-align:left;padding:17px 18px;border-bottom:1px solid var(--line);font-size:.76rem}.user-table th{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:#7b857d;background:#fafcf9}.user-table tr:last-child td{border-bottom:0}.user-table td strong{display:block;margin-bottom:4px}.user-table td small{display:block;color:var(--muted)}.table-actions{display:flex;gap:13px;justify-content:flex-end}.text-action{background:none;border:0;padding:0;font:inherit;font-weight:700;color:#4a7500;cursor:pointer}.danger-text{color:#a64a55}.modal[hidden]{display:none}.modal{position:fixed;inset:0;background:rgba(3,8,4,.64);z-index:100;display:grid;place-items:center;padding:20px;overflow:auto}.modal-card{position:relative;background:#fff;width:min(620px,100%);border-radius:20px;padding:30px;box-shadow:0 28px 80px rgba(0,0,0,.28)}.modal-card h2{margin:0 0 22px}.modal-close{position:absolute;right:18px;top:15px;border:0;background:none;font-size:1.6rem;color:#727c74;cursor:pointer}.modal-open{overflow:hidden}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid label{display:grid;gap:7px;font-size:.75rem;font-weight:700}.form-grid .full{grid-column:1/-1}.form-grid input{width:100%;border:1px solid var(--line);background:#fafcf9;padding:13px 14px;border-radius:10px;outline:none}.form-grid input:focus{border-color:var(--lime-dark);box-shadow:0 0 0 3px rgba(141,255,0,.12)}.form-grid label small{font-size:.65rem;color:var(--muted);font-weight:500}
@media(max-width:800px){.page-heading{align-items:flex-start;flex-direction:column}.admin-summary{grid-template-columns:1fr}.management-card{align-items:flex-start;flex-direction:column}.card-actions{justify-content:flex-start}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}
/* Módulo 3: solicitudes */
.compact-heading{padding-top:10px}.request-form-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;margin:28px 0;box-shadow:0 10px 28px rgba(8,20,10,.04)}.request-form textarea{width:100%;border:1px solid var(--line);background:#fafcf9;padding:13px 14px;border-radius:10px;outline:none;resize:vertical;font:inherit;line-height:1.5}.request-form textarea:focus{border-color:var(--lime-dark);box-shadow:0 0 0 3px rgba(141,255,0,.12)}.form-actions-row{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.form-actions-row .btn-ghost{border:1px solid var(--line)}.requests-list{display:grid;gap:15px}.request-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:23px 25px;box-shadow:0 10px 28px rgba(8,20,10,.035)}.request-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:22px}.request-id{display:block;font-size:.68rem;font-weight:800;color:#657168;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.request-card h3{font-size:1.25rem;margin:0 0 6px}.request-card p{margin:0;color:var(--muted);font-size:.84rem}.request-status{display:inline-flex;white-space:nowrap;padding:8px 11px;border-radius:999px;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.status-pendiente{background:#fff3cf;color:#7b5a00}.status-aprobado{background:#eaffd1;color:#3c7100}.status-rechazado{background:#fff0f1;color:#9a2632}.status-emitido{background:#e8f3ff;color:#235e91}.request-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:22px;padding-top:19px;border-top:1px solid var(--line)}.request-meta span{display:grid;gap:5px;color:#515e55;font-size:.77rem}.request-meta strong{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:#849087}.request-meta small{color:#88928a;font-size:.68rem}.admin-note,.partner-note{margin-top:18px;padding:15px 17px;border-radius:12px;background:#f5f8f3;color:#526056;font-size:.78rem;line-height:1.55}.admin-note strong,.partner-note strong{display:block;color:#28332c;margin-bottom:6px}.partner-note{background:#f2fae8;border-left:3px solid var(--lime-dark)}.pending-review-note{margin-top:18px;padding:12px 15px;border-radius:10px;background:#fff8df;color:#6e590d;font-size:.74rem}.request-kicker{font-size:.72rem;color:#4d8107;font-weight:800;margin-bottom:9px}.admin-meta{grid-template-columns:repeat(5,1fr)}.filter-tabs{display:flex;gap:9px;flex-wrap:wrap;margin:25px 0 5px}.filter-tab{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);padding:10px 13px;border-radius:999px;font-size:.72rem;font-weight:700;color:#667168}.filter-tab strong{display:grid;place-items:center;min-width:22px;height:22px;border-radius:999px;background:#edf1ec;color:#526056;font-size:.65rem}.filter-tab.active{background:#101410;color:#fff;border-color:#101410}.filter-tab.active strong{background:var(--lime);color:#183000}.request-admin-section{margin-top:25px}
@media(max-width:900px){.request-meta,.admin-meta{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.request-form-card{padding:20px}.request-card{padding:20px}.request-card-top{flex-direction:column}.request-meta,.admin-meta{grid-template-columns:1fr}.form-actions-row{flex-direction:column-reverse}.form-actions-row .btn{width:100%}}

/* Módulo 4: logos y edición administrativa */
.entity-logo{display:grid;place-items:center;flex:0 0 64px;width:64px;height:64px;border-radius:13px;background:#fff;border:1px solid var(--line);overflow:hidden}.entity-logo img{display:block;width:100%;height:100%;object-fit:contain;padding:6px}.current-logo-box{display:flex;align-items:center;gap:14px;padding:13px;border:1px solid var(--line);border-radius:12px;background:#f8faf7}.current-logo-box>span{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#6e796f}.current-logo-box img{width:120px;height:65px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:9px;padding:5px}.current-logo-box .remove-logo{display:flex;align-items:center;gap:7px;margin-left:auto;font-size:.7rem;font-weight:700}.current-logo-box .remove-logo input{width:auto}.certificate-source-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-top:15px}.certificate-source-block{padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fafcf9}.certificate-source-block strong{display:block;margin-bottom:6px;font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;color:#748077}.certificate-source-block p{margin:0!important;line-height:1.55}.institution-logo-source img{display:block;max-width:180px;max-height:72px;object-fit:contain}.admin-edit-row{display:flex;justify-content:flex-end;margin-top:14px}.request-edit-modal{width:min(760px,100%)}.request-edit-modal textarea{width:100%;border:1px solid var(--line);background:#fafcf9;padding:13px 14px;border-radius:10px;outline:none;resize:vertical;font:inherit;line-height:1.5}.request-edit-modal textarea:focus{border-color:var(--lime-dark);box-shadow:0 0 0 3px rgba(141,255,0,.12)}
/* estilos de autorización consolidados */
.approval-panel{margin-top:20px;padding:18px;border:1px solid #dfe6dc;border-radius:16px;background:#f8faf6}.approval-heading{margin-bottom:14px}.approval-heading strong{display:block;font-size:14px;font-weight:800;color:#151915}.approval-heading p{margin:5px 0 0;font-size:12px;color:#707a72}.approval-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.approval-actions .btn{min-height:42px;padding:0 18px;border-radius:12px;font-size:13px;font-weight:800}.reject-box{position:relative}.reject-box summary{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 18px;border:1px solid #dccaca;border-radius:12px;background:#fff;color:#934040;font-size:13px;font-weight:700;cursor:pointer;list-style:none}.reject-box summary::before{content:"✕";margin-right:7px;font-size:11px}.reject-box summary::-webkit-details-marker{display:none}.reject-box[open]{width:100%;margin-top:4px}.reject-form{margin-top:12px;max-width:650px;padding:16px;border:1px solid #ecd1d1;border-radius:14px;background:#fff8f8}.reject-form label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:700}.reject-form textarea{width:100%;min-height:90px;padding:12px 14px;border:1px solid #d9ded7;border-radius:12px;background:#fff;font:inherit;resize:vertical}.btn-danger{margin-top:12px;min-height:42px;padding:0 18px;border:0;border-radius:12px;background:#9d3b3b;color:#fff;font-weight:800;cursor:pointer}.btn-danger:hover{background:#842f2f}.approved-note{margin-top:16px;padding:14px 16px;border-radius:14px;border:1px solid #cce5ad;background:#effbdc;color:#41651c;font-size:13px;font-weight:600}.admin-rejection-note{margin-top:16px;padding:14px 16px;border-radius:14px;border:1px solid #efcccc;background:#fff1f1;color:#833333;font-size:13px;line-height:1.5}.admin-rejection-note strong{display:block;margin-bottom:4px;font-size:11px;text-transform:uppercase;letter-spacing:.08em}
@media(max-width:800px){.certificate-source-grid{grid-template-columns:1fr}.current-logo-box{align-items:flex-start;flex-direction:column}.current-logo-box .remove-logo{margin-left:0}}
@media(max-width:700px){.approval-actions{flex-direction:column;align-items:stretch}.approval-actions form,.reject-box{width:100%}.approval-actions .btn,.reject-box summary{width:100%}.admin-edit-row .btn{width:100%}}
