
/* Portal de módulos. No modifica estilos internos, sesiones ni datos de los módulos. */
body:not(.in-module) .portal { background: #f3f5f9; grid-template-columns: 220px minmax(0,1fr); }
body:not(.in-module) .portal aside { background: #102642; padding: 30px 20px; border-right: 1px solid #233a55; }
body:not(.in-module) .portal aside .brand { margin-bottom: 52px; }
body:not(.in-module) .portal aside :is(#home-nav,#general-nav) { display:flex;align-items:center;min-height:46px;padding:12px 14px;border:1px solid #ffffff14;border-radius:10px;text-decoration:none;color:#dce7f5;font-size:12px;line-height:1.5; }
body:not(.in-module) .portal aside #home-nav.nav-active { background:#ffffff12;border-color:#ffffff24;box-shadow:inset 3px 0 #79aaff; }
body:not(.in-module) .workspace > header { background:#fff;border-bottom:1px solid #e3e8ef;min-height:72px;padding:16px 36px; }
body:not(.in-module) #chooser { width:100%;max-width:1500px;margin:0 auto;padding:36px; }
#chooser .intro { position:relative;isolation:isolate;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:32px 34px;margin-bottom:36px;background:#102c4b;border:1px solid #244867;border-radius:18px;box-shadow:none;overflow:hidden; }
#chooser .intro::after { content:"";position:absolute;z-index:-1;right:130px;top:-150px;width:360px;height:360px;border:1px solid #ffffff0a;border-radius:50%;box-shadow:0 0 0 60px #ffffff03,0 0 0 120px #ffffff02;pointer-events:none; }
#chooser .intro .kicker { display:flex;align-items:center;gap:8px;color:#a9bfd8;font-size:10px;letter-spacing:1.7px;margin-bottom:16px;line-height:1.5; }
.portal-brand-mark { width:7px;height:7px;background:#72aaff;border-radius:2px;flex:none; }
#chooser .intro h1 { font-size:clamp(26px,2.6vw,37px);line-height:1.2;font-weight:650;letter-spacing:-1.1px;margin:0 0 10px;color:#fff;overflow-wrap:anywhere; }
#chooser .intro p { color:#b4c6dc;font-size:13px;margin-bottom:0; }
#chooser .portal-user-meta { margin-top:20px;gap:7px; }
#chooser .portal-user-meta span { border:1px solid #ffffff20;border-radius:6px;font-size:11px;background:#ffffff08;color:#dce8f5;padding:5px 9px; }
.portal-day { border-left:1px solid #ffffff1e;padding-left:28px;flex:0 0 200px;display:flex;flex-direction:column;gap:9px; }
.portal-day > span:first-child { color:#a6bcd5;font-size:9px;font-weight:650;letter-spacing:1.3px; }
#chooser .portal-day .date { border:0;background:none;color:#f4f8ff;font-size:14px;font-weight:600;padding:0;max-width:none;line-height:1.5; }
.portal-day small { color:#9bb3ce;font-size:10px; }
#chooser .section-heading { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px; }
.section-eyebrow { display:block;color:#7a889c;font-size:9px;letter-spacing:1.6px;font-weight:650;margin-bottom:7px; }
#chooser .section-heading h2 { margin:0;color:#18314e;font-size:21px;letter-spacing:-.6px;font-weight:650; }
#chooser .module-count { display:flex;align-items:center;gap:9px;border:1px solid #dce4ef;background:#fff;border-radius:20px;padding:7px 12px;color:#24496e;font-size:12px;font-variant-numeric:tabular-nums; }
#chooser .module-count span { font-size:10px;color:#708098; }
#chooser .module-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch; }
#chooser .module-card { display:flex;flex-direction:column;position:relative;padding:26px 24px 20px;background:#fff;border:1px solid #dee5ee;border-radius:16px;box-shadow:0 4px 16px #102c4b04;overflow:hidden;min-width:0;transition:border-color .15s,box-shadow .15s; }
#chooser .module-card:before { display:none; }
#chooser .module-card:hover { transform:none;border-color:#b4c7df;box-shadow:0 8px 22px #183b610a; }
#chooser .card-top { display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;margin-bottom:30px; }
#chooser .module-icon { width:48px;height:48px;border-radius:12px;border:1px solid #00000005; }
#chooser .module-tag { color:#6d7f96;letter-spacing:1.2px;font-size:9px;line-height:1.6; }
#chooser .module-number { font-variant-numeric:tabular-nums;align-self:start;color:#c2ccda;font-size:16px;letter-spacing:-.4px;font-weight:500; }
#chooser .module-card h3 { color:#142d4b;font-size:22px;line-height:1.25;letter-spacing:-.65px;font-weight:700;margin:0 0 13px; }
#chooser .module-card p { color:#6b7d92;font-size:12px;line-height:1.8;min-height:66px;margin:0 0 22px; }
#chooser .features { display:flex;gap:6px;flex-wrap:wrap;margin:0 0 28px;min-height:0; }
#chooser .features span { background:#f5f7fa;border:1px solid #e9edf3;color:#65778e;font-size:10px;padding:5px 8px;border-radius:5px; }
#chooser .card-access { display:flex;align-items:center;min-height:58px;border-top:1px solid #edf0f5;padding:14px 0;margin-top:auto;font-size:11px;line-height:1.65;color:#738399;overflow-wrap:anywhere; }
#chooser .card-access.ready { color:#287767; }
#chooser .module-button { display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:46px;border:1px solid #183d69;border-radius:9px;background:#183d69;color:white;padding:12px 15px;font-size:12px;font-weight:650;text-decoration:none;box-shadow:none; }
#chooser .module-button:hover { background:#224e80; }
#chooser .module-button > span { display:grid;place-items:center;border-left:1px solid #ffffff25;padding-left:14px;font-size:18px;font-weight:400; }
#chooser .module-locked .module-button,#chooser .module-button[aria-disabled="true"] { background:#edf1f6;border-color:#dde5ee;color:#8795a7;cursor:not-allowed;box-shadow:none; }
#chooser .help-note { display:flex;gap:12px;align-items:center;background:transparent;border:0;border-top:1px solid #e1e7ef;border-radius:0;padding:22px 0 0;margin-top:28px;color:#748398; }
#chooser .help-note > span { display:grid;place-items:center;flex:none;width:28px;height:28px;color:#5b7897;border-radius:50%;background:#e8eef6;font-size:12px; }
#chooser .help-note strong { color:#516984;font-size:11px;font-weight:600; }
#chooser .help-note p { margin:5px 0 0;font-size:11px;line-height:1.7; }
#chooser :is(a,button):focus-visible,body:not(.in-module) .portal aside a:focus-visible { outline:3px solid #86b7ff;outline-offset:4px; }
@media (max-width:1200px) { body:not(.in-module) .portal { grid-template-columns:190px minmax(0,1fr); } body:not(.in-module) #chooser { padding:28px; } #chooser .module-grid { gap:14px; } #chooser .module-card { padding:22px 18px 18px; } #chooser .module-card h3 { font-size:20px; } #chooser .card-top { gap:8px;grid-template-columns:42px 1fr auto; } #chooser .module-icon { width:42px;height:42px; } }
@media (min-width:801px) and (max-width:1050px) { #chooser .module-grid { grid-template-columns:1fr; } #chooser .module-card { display:grid;grid-template-columns:minmax(0,1fr) 220px;column-gap:26px; } #chooser .card-top { grid-column:1;grid-row:1;margin-bottom:18px; } #chooser .module-card h3 { grid-column:1;grid-row:2; } #chooser .module-card p { grid-column:1;grid-row:3;min-height:0;margin-bottom:14px; } #chooser .features { grid-column:1;grid-row:4;margin-bottom:0; } #chooser .card-access { grid-column:2;grid-row:1/4;border-top:0;align-self:center; } #chooser .module-button { grid-column:2;grid-row:4;align-self:end; } .portal-day { flex-basis:165px;padding-left:20px; } }
@media (max-width:800px) { body:not(.in-module) .portal { grid-template-columns:minmax(0,1fr); } body:not(.in-module) .portal aside { padding:18px 20px; } body:not(.in-module) .portal aside .brand { margin-bottom:0; } body:not(.in-module) .workspace > header { padding:14px 20px;min-height:64px; } body:not(.in-module) #chooser { padding:24px 20px; } #chooser .intro { padding:25px;flex-direction:column;align-items:stretch;gap:22px;margin-bottom:28px; } .portal-day { flex:auto;border-left:0;border-top:1px solid #ffffff1e;padding:17px 0 0;display:grid;grid-template-columns:1fr auto;gap:7px 12px; } .portal-day > span:first-child { grid-column:1; } #chooser .portal-day .date { grid-column:1;grid-row:2; } .portal-day small { grid-column:2;grid-row:2;align-self:center; } #chooser .module-grid { grid-template-columns:minmax(0,1fr);gap:16px; } #chooser .module-card { padding:24px; } #chooser .module-card p { min-height:0; } #chooser .card-top { margin-bottom:22px; } #chooser .module-card h3 { font-size:23px; } #chooser .features { margin-bottom:22px; } #chooser .module-count span { display:none; } #chooser .section-heading h2 { font-size:20px; } }
@media (max-width:420px) { body:not(.in-module) #chooser { padding:20px 16px; } #chooser .intro { padding:22px; } #chooser .intro h1 { font-size:27px; } #chooser .module-card { padding:22px; } body:not(.in-module) .workspace > header { flex-wrap:wrap;gap:10px;padding:12px 16px; } body:not(.in-module) .account { flex-wrap:wrap;max-width:100%;gap:8px; } body:not(.in-module) #account-email { max-width:calc(100vw - 190px); } }
@media (prefers-reduced-motion:reduce) { #chooser .module-card { transition:none; } }

/* Los módulos no autorizados no dejan tarjetas ni huecos visibles. */
#chooser .module-card[hidden]{display:none!important}
#chooser .module-grid[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:800px){#chooser .module-grid[data-count="2"]{grid-template-columns:minmax(0,1fr)}}
