.portals{margin:0 0 2.5rem;padding:0 0 2rem;border-bottom:1px solid var(--line)}
.portals h2{margin-bottom:1rem;font-size:1.4rem;letter-spacing:0}
.portal-group h3{margin:1rem 0 .65rem;font-size:.95rem;color:var(--muted);letter-spacing:0}
.portal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;list-style:none;margin:0;padding:0}
.portal-link{display:flex;align-items:center;gap:.65rem;min-height:64px;height:100%;padding:.65rem .75rem;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);text-decoration:none;line-height:1.3;font-size:.95rem;font-weight:600;letter-spacing:0}
.portal-link:hover{background:var(--accent-bg);border-color:var(--accent)}
.portal-icon{display:grid;place-items:center;flex:none;width:32px;height:32px;color:var(--link)}
.portal-icon img{width:32px;height:32px;object-fit:contain}
.portal-icon svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.portal-name{min-width:0;overflow-wrap:anywhere}
.portal-arrow{flex:none;margin-left:auto;width:13px;height:13px;fill:none;stroke:var(--muted);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sm-portals{padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid var(--line)}
.sm-portals .sm-h{color:var(--muted);letter-spacing:0}
.sm-portal-grid{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.2rem .6rem;padding:0;margin:0}
.sm-portal-grid .portal-link{border:0;background:transparent;min-height:44px;padding:.45rem .35rem;font-size:.9rem;font-weight:400}
.sm-portal-grid .portal-link:hover{background:var(--accent-bg)}
.sm-portal-grid .portal-icon,.sm-portal-grid .portal-icon img{width:24px;height:24px}
.sm-portal-grid .portal-icon svg{width:22px;height:22px}
@media(max-width:700px){.portal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-link{font-size:.9rem;gap:.45rem;padding:.6rem}.portals{margin-bottom:2rem}.home-hero{margin-bottom:1.5rem}}
@media print{.portals,.sm-portals{display:none}}