.radar-virbot { display: grid; grid-template-columns: 96px minmax(0,1fr); gap: 1.1rem; align-items: center; margin: 0 0 1.7rem; padding: 1.2rem 1.5rem; border: 1px solid #ddd0b8; border-top: 2px solid #85b7c5; border-bottom: 2px solid #c78e9d; border-radius: 12px; background: #fffdf9; }
.radar-virbot > img { width: 96px; height: auto; object-fit: contain; animation: virbot-arrive .8s ease-out both; }
.radar-virbot.is-responding > img { animation: virbot-nod .6s ease; }
@keyframes virbot-nod { 50% { transform: rotate(-8deg) translateY(-3px); } }
.radar-virbot h3 { margin: .1rem 0 .35rem; color: #2e3230; font-size: clamp(1.4rem,2.3vw,1.9rem); }
.radar-virbot p { margin: .25rem 0 .75rem; color: #4c5550; }
.radar-virbot-actions { display: flex; flex-wrap: wrap; gap: .55rem; }
.radar-virbot-actions button { min-height: 44px; padding: .48rem .78rem; border: 1px solid #85b7c5; border-radius: 6px; background: #fff; color: #173d32; font: 600 .9rem/1.25 system-ui,sans-serif; cursor: pointer; }
.radar-virbot-actions button:nth-child(even) { border-color: #c78e9d; }
.radar-virbot-actions button[aria-pressed="true"] { border-color: #173d32; background: #173d32; color: #fff; }
.radar-virbot-actions button:focus-visible { outline: 3px solid #356f7d; outline-offset: 3px; }
.radar-virbot .radar-filter-status { margin: .7rem 0 0; font-size: .85rem; }
.radar-filtered .radar-subheading { display: none; }
.radar-filtered .radar-stream { border: 0; }
.observatory-page .update-card[hidden] { display: none; }
.observatory-page .radar-stream[hidden] { display: none; }
.observatory-page .source-dot { width: 20px; height: 20px; display: inline-block; flex: 0 0 20px; border: 1px solid #85b7c5; border-bottom-color: #c78e9d; border-radius: 50%; background: #fff; }
@keyframes virbot-arrive { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media(max-width:600px) { .radar-virbot { grid-template-columns: 56px minmax(0,1fr); gap: .7rem; padding: 1rem; } .radar-virbot > img { width: 56px; align-self: start; } .radar-virbot-actions { grid-column: 1/-1; } }
@media(prefers-reduced-motion:reduce) { .radar-virbot > img,.radar-virbot.is-responding > img { animation: none; } }
.public-virbot-trigger { position: fixed; z-index: 40; right: 16px; bottom: 16px; display: flex; align-items: center; gap: .3rem; min-height: 52px; padding: .2rem .75rem .2rem .2rem; border: 1px solid #85b7c5; border-bottom-color: #c78e9d; border-radius: 999px; background: #fff; color: #173d32; box-shadow: 0 8px 26px #173d3229; font: 700 .85rem/1.25 system-ui,sans-serif; cursor: pointer; }
.public-virbot-trigger img { width: 42px; height: 46px; object-fit: contain; }
.public-virbot-panel[hidden] { display: none; }
.public-virbot-panel { position: fixed; z-index: 41; right: 16px; bottom: 78px; display: grid; grid-template-columns: 72px minmax(0,1fr); gap: .6rem; width: min(420px,calc(100vw - 32px)); max-height: min(75dvh,520px); overflow-y: auto; padding: 1.2rem; border: 1px solid #ddd0b8; border-top: 3px solid #85b7c5; border-bottom: 3px solid #c78e9d; border-radius: 14px; background: #fffdf9; box-shadow: 0 18px 40px #173d3233; color: #2e3230; }
.public-virbot-panel > img { width: 72px; height: auto; align-self: end; }
.public-virbot-panel h2 { margin: .1rem 1.5rem .4rem 0; color: #2e3230; font: 400 1.55rem/1.2 Georgia,serif; }
.public-virbot-panel p { margin: .3rem 0 .8rem; }
.public-virbot-panel nav { display: grid; gap: .3rem; }
.public-virbot-panel nav a { display: block; padding: .55rem; border: 1px solid #dfe2dd; color: #173d32; background: #fff; text-decoration: none; font-weight: 650; }
.public-virbot-panel nav a:nth-child(even) { border-left: 2px solid #c78e9d; }
.public-virbot-panel nav a:hover { border-color: #85b7c5; }
.public-virbot-panel small { display: block; margin-top: .7rem; color: #52605d; }
.public-virbot-close { position: absolute; top: .4rem; right: .4rem; width: 42px; height: 42px; border: 0; background: transparent; color: #173d32; font-size: 1.5rem; cursor: pointer; }
.public-virbot-panel :focus-visible,.public-virbot-trigger:focus-visible { outline: 3px solid #356f7d; outline-offset: 2px; }
@media(max-width:520px) { .public-virbot-trigger { right: 10px; bottom: 10px; } .public-virbot-panel { right: 10px; bottom: 70px; grid-template-columns: 48px 1fr; width: calc(100vw - 20px); } .public-virbot-panel > img { width: 48px; } }
@media print { .public-virbot-trigger,.public-virbot-panel { display: none !important; } }
.upcoming-microcourses{margin:2.5rem 0;padding:clamp(1.5rem,4vw,2.7rem);background:#fbfaf6;color:#2e3230;border:1px solid #ddd0b8;border-top:2px solid #85b7c5;border-bottom:2px solid #c78e9d;border-radius:.9rem}.upcoming-microcourses-heading{display:flex;justify-content:space-between;align-items:center;gap:1.2rem}.upcoming-microcourses-heading h2{margin:.3rem 0 1rem}.upcoming-microcourses-heading img{object-fit:contain;filter:drop-shadow(0 5px 8px #173d3222)}.upcoming-microcourses-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1rem}.upcoming-microcourses-grid article{background:#fff;padding:1.2rem;border:1px solid #e7d6d6;border-left:3px solid #c78e9d;border-radius:.55rem}.upcoming-microcourses-grid article+article{border-left-color:#85b7c5}.upcoming-microcourses-grid h3{margin:.3rem 0;font-size:1.35rem}.upcoming-microcourses-grid p:last-child{margin-bottom:0}.upcoming-microcourses>a{display:inline-block;margin-top:1.1rem;color:#173d32;font-weight:700}@media(max-width:620px){.upcoming-microcourses-heading img{width:58px}}
/* La regla global de imágenes del inicio ocupa 100%; aquí VIRBOT es un detalle. */
.public-home .upcoming-microcourses .upcoming-microcourses-heading > img{display:block;width:72px;min-width:72px;max-width:72px;height:88px;max-height:88px;flex:0 0 72px;object-fit:contain}
@media(max-width:620px){.public-home .upcoming-microcourses .upcoming-microcourses-heading > img{width:56px;min-width:56px;max-width:56px;height:68px;max-height:68px;flex-basis:56px}}

.upcoming-microcourses .upcoming-home-link{display:flex;align-items:center;width:fit-content;min-height:44px;margin-top:1rem;padding:.5rem .9rem;background:#fff;color:#173d32;border:1px solid #ddd0b8;border-radius:.5rem;font-weight:700;text-underline-offset:.2em}
