/* Region badges (compute catalogue) + /sitemap page. Builds on the site theme variables (--gs-*) from app.css. */
.gs-region { display: inline-block; margin-left: .35rem; padding: .05rem .5rem; border-radius: 999px; font-size: .7rem;
             font-weight: 650; line-height: 1.35rem; white-space: nowrap; border: 1px solid currentColor; vertical-align: middle; cursor: help; }
.gs-region--eu { color: #4ade80; background: rgba(34, 197, 94, .12); }
.gs-region--america { color: #7dd3fc; background: rgba(56, 189, 248, .12); }
.gs-region--other { color: #cbd5e1; background: rgba(148, 163, 184, .14); }
html.light .gs-region--eu { color: #15803d; background: #dcfce7; }
html.light .gs-region--america { color: #0369a1; background: #e0f2fe; }
html.light .gs-region--other { color: #475569; background: #f1f5f9; }
.gs-region-note { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .6rem; font-size: .85rem; color: var(--gs-muted, #94a3b8); margin: 0 0 .75rem; }

.sm-wrap { max-width: 1100px; margin: 0 auto; padding: 7.5rem 1.25rem 4rem; color: var(--gs-fg); }
.sm-crumb { font-size: .8rem; color: var(--gs-muted); margin: 0 0 .75rem; }
.sm-crumb a { color: inherit; } .sm-crumb a:hover { color: var(--gs-accent, #3b82f6); }
.sm-head h1 { font-size: 2rem; font-weight: 700; letter-spacing: -.01em; margin: 0 0 .4rem; color: var(--gs-fg); }
.sm-intro { color: var(--gs-muted); margin: 0 0 2rem; max-width: 48rem; }
.sm-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); align-items: start; }
.sm-group { border: 1px solid var(--gs-border); background: var(--gs-card); border-radius: 1rem; padding: 1.1rem 1.25rem; }
.sm-group h2 { font-size: 1.05rem; font-weight: 700; margin: 0 0 .7rem; color: var(--gs-fg); display: flex; align-items: center; gap: .5rem; }
.sm-group h2 .sm-count { font-size: .72rem; font-weight: 600; color: var(--gs-muted); border: 1px solid var(--gs-border); border-radius: 999px; padding: 0 .45rem; }
.sm-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.sm-list a { color: var(--gs-accent, #60a5fa); font-weight: 600; text-decoration: underline; text-underline-offset: .15em; }
.sm-list a:hover, .sm-list a:focus-visible { color: var(--gs-fg); }
.sm-path { display: block; font-size: .72rem; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color: var(--gs-muted); margin-top: .12rem; overflow-wrap: anywhere; }
.sm-desc { display: block; font-size: .8rem; color: var(--gs-muted); margin-top: .15rem; line-height: 1.35; }
.sm-docs { list-style: none; margin: .3rem 0 0; padding: 0 0 0 .15rem; display: grid; gap: .15rem; }
.sm-docs a { font-weight: 500; font-size: .78rem; }
.sm-sub { font-size: .7rem; color: var(--gs-muted); margin-left: .35rem; font-weight: 500; }
.sm-ext { font-size: .85em; margin-left: .2rem; }
.sm-note { font-size: .78rem; color: var(--gs-muted); margin: .8rem 0 0; }
.sm-total { font-size: .8rem; color: var(--gs-muted); margin: 1.5rem 0 0; }
@media (max-width: 480px) { .sm-wrap { padding-top: 6.5rem; } .sm-head h1 { font-size: 1.6rem; } .sm-grid { grid-template-columns: 1fr; } }
