:root {
--sgt-accent: var(--pico-primary);
font-size: 87.5%;
}
.sgt-icon {
width: 1em;
height: 1em;
display: inline-block;
vertical-align: -0.125em;
flex: 0 0 auto;
fill: none;
stroke: currentColor;
}
.sgt-topbar {
position: sticky;
top: 0;
z-index: 10;
background: var(--pico-card-background-color);
border-bottom: 1px solid var(--pico-muted-border-color);
box-shadow: var(--pico-card-box-shadow);
}
.sgt-topbar nav {
align-items: center;
gap: 0.25rem;
}
.sgt-topbar > nav > ul > li {
padding-top: 0.2rem;
padding-bottom: 0.2rem;
}
.sgt-brand {
display: inline-flex;
align-items: center;
gap: 0.5rem;
text-decoration: none;
color: var(--pico-color);
}
.sgt-brand img {
display: block;
width: 22px;
height: 22px;
}
.sgt-brand strong {
font-size: 1.05rem;
letter-spacing: 0.01em;
}
.sgt-nav {
flex-wrap: wrap;
justify-content: center;
flex: 1 1 auto;
}
.sgt-nav a {
display: inline-flex;
align-items: center;
gap: 0.4rem;
padding: 0.25rem 0.6rem;
border-radius: var(--pico-border-radius);
text-decoration: none;
}
.sgt-nav a .sgt-icon {
font-size: 1.1em;
}
button:has(.sgt-icon),
summary:has(.sgt-icon) {
display: inline-flex;
align-items: center;
gap: 0.35rem;
}
.sgt-nav a[aria-current="page"] {
background: color-mix(in srgb, var(--sgt-accent) 18%, transparent);
color: var(--sgt-accent);
font-weight: 600;
}
.sgt-nav-toggle {
display: none;
flex: 0 0 auto;
}
.sgt-hamburger {
margin: 0;
padding: 0.3rem 0.5rem;
width: auto;
font-size: 1.4rem;
line-height: 1;
background: transparent;
border: none;
color: inherit;
cursor: pointer;
}
.sgt-hamburger:hover {
color: var(--sgt-accent);
}
.sgt-topbar .sgt-icon-btn {
display: inline-flex;
align-items: center;
gap: 0.3rem;
margin: 0;
padding: 0.4rem 0.5rem;
width: auto;
background: transparent;
border: none;
color: inherit;
text-decoration: none;
line-height: 1;
cursor: pointer;
}
.sgt-topbar .sgt-icon-btn:hover,
.sgt-topbar .sgt-icon-btn[aria-current="page"] {
background: transparent;
color: var(--sgt-accent);
}
.sgt-topbar .sgt-icon-btn .sgt-icon {
font-size: 1.3rem;
}
.sgt-topbar .sgt-pause-summary .sgt-icon {
font-size: 1.1em;
}
.sgt-topbar details.dropdown summary {
height: auto;
border: none;
background: transparent;
color: inherit;
}
.sgt-topbar details.dropdown summary:hover,
.sgt-topbar details.dropdown summary:focus,
.sgt-topbar details.dropdown summary:active {
border: none;
background: transparent;
color: var(--sgt-accent);
}
.sgt-topbar details.dropdown summary:focus:not(:focus-visible) {
box-shadow: none;
}
.sgt-pause-menu {
margin: 0;
}
.sgt-pause-menu summary {
width: auto;
}
.sgt-pause-opt {
display: block;
width: 100%;
margin: 0;
padding: 0.3rem 0.5rem;
text-align: start;
background: transparent;
border: none;
color: inherit;
font-size: 0.85rem;
}
.sgt-pause-opt:hover {
background: color-mix(in srgb, var(--sgt-accent) 14%, transparent);
color: var(--sgt-accent);
}
.sgt-paused {
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
flex-wrap: wrap;
padding: 0.5rem 1rem;
background: color-mix(in srgb, var(--sgt-accent) 16%, transparent);
border-bottom: 1px solid var(--sgt-accent);
color: var(--pico-color);
font-size: 0.92rem;
}
.sgt-paused strong {
font-variant-numeric: tabular-nums;
}
.sgt-cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
gap: 1rem;
margin-bottom: 1.5rem;
}
.sgt-card {
margin: 0;
padding: 1rem 1.25rem;
text-align: center;
}
.sgt-card > .sgt-icon {
display: block;
margin: 0 auto 0.5rem;
font-size: 1.4rem;
color: var(--sgt-accent);
}
.sgt-page-title,
.sgt-section-title,
.sgt-panel-title {
display: flex;
align-items: center;
gap: 0.5rem;
}
.sgt-page-title .sgt-icon,
.sgt-section-title .sgt-icon {
color: var(--sgt-accent);
}
.sgt-card .sgt-figure {
display: block;
font-size: 2rem;
font-weight: 700;
line-height: 1.1;
font-variant-numeric: tabular-nums;
}
.sgt-card .sgt-label {
display: block;
margin-top: 0.25rem;
color: var(--pico-muted-color);
font-size: 0.85rem;
text-transform: uppercase;
letter-spacing: 0.04em;
}
.sgt-columns {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
gap: 1rem;
}
.sgt-badge {
display: inline-block;
padding: 0.1rem 0.5rem;
border-radius: 1rem;
font-size: 0.78rem;
font-weight: 600;
white-space: nowrap;
}
.sgt-badge--blocked { background: #d9342233; color: #e5533d; }
.sgt-badge--cached { background: #2a9d8f33; color: #2a9d8f; }
.sgt-badge--forwarded { background: #4a7fd933; color: #6ea0ee; }
.sgt-badge--local { background: #9b59b633; color: #b07cd0; }
.sgt-badge--other { background: var(--pico-muted-border-color); color: var(--pico-muted-color); }
.sgt-mono {
font-family: var(--pico-font-family-monospace);
font-size: 0.9em;
}
.sgt-actions {
display: flex;
gap: 0.5rem;
flex-wrap: wrap;
align-items: center;
}
.sgt-inline-form {
display: inline;
}
.sgt-btn-sm {
padding: 0.15rem 0.6rem;
font-size: 0.8rem;
margin: 0;
width: auto;
}
.sgt-centered {
max-width: 26rem;
margin: 4rem auto;
}
.sgt-centered .sgt-brand {
justify-content: center;
margin-bottom: 1.5rem;
}
.sgt-notice {
padding: 0.6rem 0.9rem;
border-radius: var(--pico-border-radius);
margin-bottom: 1rem;
}
.sgt-notice--error { background: #d9342222; color: #e5533d; }
.sgt-notice--ok { background: #2a9d8f22; color: #2a9d8f; }
.sgt-muted { color: var(--pico-muted-color); font-size: 0.88rem; }
.sgt-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sgt-toast {
position: fixed;
right: 1rem;
bottom: 1rem;
max-width: min(28rem, calc(100vw - 2rem));
z-index: 20;
}
.sgt-toast:empty { display: none; }
.sgt-table-wrap {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
@media (max-width: 768px) {
.sgt-topbar nav {
flex-wrap: wrap;
row-gap: 0;
}
.sgt-nav-toggle {
display: flex;
order: 1;
margin-left: auto;
}
.sgt-nav,
.sgt-nav-actions {
order: 2;
flex-basis: 100%;
display: none;
}
.sgt-nav.sgt-collapse--open,
.sgt-nav-actions.sgt-collapse--open {
display: flex;
}
.sgt-nav {
flex-direction: column;
align-items: stretch;
}
.sgt-nav-actions {
flex-direction: row;
flex-wrap: wrap;
align-items: center;
gap: 0.25rem;
margin-top: 0.3rem;
padding-top: 0.3rem;
border-top: 1px solid var(--pico-muted-border-color);
}
.sgt-topbar > nav > ul > li {
padding-top: 0.15rem;
padding-bottom: 0.15rem;
}
.sgt-nav a {
padding: 0.3rem 0.5rem;
}
.sgt-topbar details.dropdown summary + ul {
right: auto;
left: 0;
}
form.sgt-actions {
flex-direction: column;
align-items: stretch;
}
.sgt-btn-sm {
padding: 0.45rem 0.7rem;
font-size: 0.85rem;
}
.sgt-paused {
padding: 0.5rem 0.75rem;
font-size: 0.85rem;
}
}