:root{--geop:#087f83;--geop-dark:#064f52;--ink:#172126;--muted:#5e6a70;--line:#dfe6e8;--paper:#fff;--wash:#f3f7f7}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--wash)}
body.hub{display:grid;place-items:center;padding:32px}.hub-card{max-width:680px;background:var(--paper);padding:48px;border-radius:20px;box-shadow:0 18px 55px #1730331a}
.eyebrow{margin:0 0 8px;color:var(--geop);font-weight:700;letter-spacing:.12em}.hub h1{font-size:clamp(2rem,6vw,3.4rem);margin:.1em 0}
.button{display:inline-block;margin-top:16px;padding:12px 18px;border-radius:8px;background:var(--geop);color:#fff;text-decoration:none;font-weight:700}
.widget{background:transparent;padding:4px}.widget-header{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:0 0 16px}
.widget-header h1{margin:0;font-size:1.45rem}.widget-header p{margin:4px 0 0;color:var(--muted)}
.updated{font-size:.78rem;color:var(--muted);white-space:nowrap}.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.story{display:flex;flex-direction:column;min-height:340px;background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 4px 16px #1730330d}
.story-image{position:relative;height:150px;overflow:hidden;background:linear-gradient(135deg,var(--geop-dark),var(--geop))}
.story-image img{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;background:#dbe7e8}
.story-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px;color:#fff;background:radial-gradient(circle at 80% 15%,#ffffff2e 0 14%,transparent 15%),linear-gradient(135deg,var(--geop-dark),var(--geop))}
.story-fallback span{font-size:.78rem;font-weight:700;letter-spacing:.18em}.story-fallback strong{font-size:1.45rem;letter-spacing:.06em}
.story-body{display:flex;flex:1;flex-direction:column;padding:15px}
.source{margin:0 0 6px;color:var(--geop);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.story h2{margin:0;font-size:1rem;line-height:1.35}.story a{color:inherit;text-decoration:none}.story a:hover{text-decoration:underline}
.summary{margin:9px 0;color:var(--muted);font-size:.86rem;line-height:1.45}.meta{margin:auto 0 0;padding-top:9px;color:var(--muted);font-size:.74rem}
.status{padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:12px}.status.error{border-color:#c64040;color:#8b1e1e}

/* Compact six-story SharePoint layout: three columns by two rows. */
.news-widget .widget-header{margin-bottom:10px}
.news-widget .widget-header h1{font-size:1.3rem}
.news-widget .eyebrow{margin-bottom:4px}
.news-widget .news-grid{gap:10px}
.news-widget .story{height:252px;min-height:0;border-radius:10px}
.news-widget .story-image{height:96px;flex:0 0 96px}
.news-widget .story-body{padding:10px}
.news-widget .source{margin-bottom:4px;font-size:.68rem}
.news-widget .story h2{font-size:.9rem;line-height:1.25;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.news-widget .summary{margin:6px 0;font-size:.76rem;line-height:1.3;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.news-widget .meta{padding-top:5px;font-size:.68rem}

@media(max-width:900px){.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.news-widget .story{height:270px}}
@media(max-width:560px){.widget-header{display:block}.updated{display:block;margin-top:6px}.news-grid{grid-template-columns:1fr}.news-widget .story{height:auto;min-height:260px}}
