/* Abliven GO Badge. Scoped and explicit, so a theme's button and dialog
   styles cannot change it. Colors meet WCAG AA contrast on each variant. */
.abl-go-foot { clear: both; box-sizing: border-box; max-width: 1340px; margin: 0 auto; padding: 20px 24px 28px; text-align: center; }
.abl-go-foot--left, .abl-go-place--left { text-align: left; }
.abl-go-foot--right, .abl-go-place--right { text-align: right; }
.abl-go-place--center { text-align: center; }
@media (max-width: 600px) { .abl-go-foot { text-align: center; } }
.abl-go { display: inline-block; vertical-align: middle; line-height: 1.3; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; }
.abl-go .abl-go__sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.abl-go .abl-go__btn {
	all: unset; box-sizing: border-box; position: relative; display: inline-flex; align-items: center; gap: 12px;
	padding: 10px 12px 10px 12px; border-radius: 14px; cursor: pointer; text-align: left;
	background: #fff; border: 2px solid #0B7A55; color: #0D2440;
	box-shadow: 0 6px 18px rgba(6, 78, 59, .16); transition: transform .18s ease, box-shadow .18s ease;
	animation: abl-go-pulse 3s ease-out infinite;
}
.abl-go .abl-go__btn:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(6, 78, 59, .24); animation: none; }
.abl-go .abl-go__btn:focus-visible { outline: 3px solid #0B4F8A; outline-offset: 3px; }
.abl-go .abl-go__shield { width: 34px; height: 34px; flex: none; }
.abl-go .abl-go__shield path:first-child { fill: #0B7A55; }
.abl-go .abl-go__check { fill: none; stroke: #fff; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.abl-go .abl-go__text { display: flex; flex-direction: column; }
.abl-go .abl-go__name { font-size: 15px; font-weight: 700; color: #0D2440; white-space: nowrap; }
.abl-go .abl-go__tag { display: inline-block; margin-left: 4px; padding: 1px 7px; border-radius: 999px; background: #E7F6EF; color: #075E42; font-size: 11px; font-weight: 700; vertical-align: 1px; }
.abl-go .abl-go__sub { font-size: 12px; color: #4B5563; white-space: nowrap; margin-top: 2px; }
.abl-go .abl-go__score { display: flex; flex-direction: column; align-items: center; padding-left: 12px; margin-left: 2px; border-left: 1px solid #CBD5E1; }
.abl-go .abl-go__num { font-size: 22px; font-weight: 800; color: #075E42; line-height: 1; }
.abl-go .abl-go__of { font-size: 11px; color: #4B5563; margin-top: 2px; }

/* Dark: for light page sections. */
.abl-go--dark .abl-go__btn { background: #0D2440; border-color: #34D399; color: #fff; }
.abl-go--dark .abl-go__shield path:first-child { fill: #34D399; }
.abl-go--dark .abl-go__check { stroke: #0D2440; }
.abl-go--dark .abl-go__name { color: #fff; }
.abl-go--dark .abl-go__tag { background: #134E4A; color: #CCFBF1; }
.abl-go--dark .abl-go__sub, .abl-go--dark .abl-go__of { color: #CBD5E1; }
.abl-go--dark .abl-go__score { border-left-color: #475569; }
.abl-go--dark .abl-go__num { color: #6EE7B7; }

/* Compact pill. */
.abl-go--pill .abl-go__btn { gap: 8px; padding: 5px 6px 5px 8px; border-radius: 999px; box-shadow: none; animation: none; }
.abl-go--pill .abl-go__shield { width: 22px; height: 22px; }
.abl-go--pill .abl-go__name { font-size: 13px; }
.abl-go--pill .abl-go__score { display: inline-block; padding: 2px 8px; margin: 0; border: 0; border-radius: 999px; background: #0B7A55; color: #fff; font-size: 13px; font-weight: 800; }

@keyframes abl-go-pulse {
	0% { box-shadow: 0 0 0 0 rgba(11, 122, 85, .35), 0 6px 18px rgba(6, 78, 59, .16); }
	70% { box-shadow: 0 0 0 9px rgba(11, 122, 85, 0), 0 6px 18px rgba(6, 78, 59, .16); }
	100% { box-shadow: 0 0 0 0 rgba(11, 122, 85, 0), 0 6px 18px rgba(6, 78, 59, .16); }
}

/* Dialog. */
.abl-go .abl-go__dlg { box-sizing: border-box; width: min(400px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 0; border: 0; border-radius: 16px; background: #fff; color: #1F2937; box-shadow: 0 24px 60px rgba(15, 23, 42, .35); text-align: left; font-size: 15px; }
.abl-go .abl-go__dlg::backdrop { background: rgba(15, 23, 42, .55); }
.abl-go .abl-go__dlg[open] { animation: abl-go-in .22s cubic-bezier(.34, 1.4, .64, 1); }
.abl-go .abl-go__dlg-in { position: relative; padding: 24px; }
.abl-go .abl-go__x { all: unset; position: absolute; top: 10px; right: 10px; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 8px; cursor: pointer; font-size: 24px; color: #374151; }
.abl-go .abl-go__x:hover { background: #F1F5F9; }
.abl-go .abl-go__x:focus-visible { outline: 3px solid #0B4F8A; outline-offset: 1px; }
.abl-go .abl-go__dlg-head { display: flex; align-items: center; gap: 12px; padding-right: 36px; }
.abl-go .abl-go__dlg-head .abl-go__shield { width: 44px; height: 44px; }
.abl-go .abl-go__dlg-head .abl-go__shield path:first-child { fill: #0B7A55; }
.abl-go .abl-go__dlg-head .abl-go__check { stroke: #fff; }
.abl-go .abl-go__h { margin: 0; padding: 0; font-size: 20px; font-weight: 800; color: #0D2440; line-height: 1.2; }
.abl-go .abl-go__dom { margin: 2px 0 0; font-size: 14px; color: #4B5563; word-break: break-all; }
.abl-go .abl-go__ring { position: relative; width: 120px; height: 120px; margin: 18px auto 8px; }
.abl-go .abl-go__ring svg { width: 120px; height: 120px; transform: rotate(-90deg); }
.abl-go .abl-go__track { fill: none; stroke: #E5E7EB; stroke-width: 8; }
.abl-go .abl-go__fill { fill: none; stroke: #0B7A55; stroke-width: 8; stroke-linecap: round; }
.abl-go .abl-go__ring-n { position: absolute; inset: 0 0 auto 0; top: 34px; text-align: center; font-size: 32px; font-weight: 800; color: #075E42; }
.abl-go .abl-go__ring-l { position: absolute; left: 0; right: 0; top: 74px; text-align: center; font-size: 10px; color: #4B5563; text-transform: uppercase; letter-spacing: .02em; }
.abl-go .abl-go__list { margin: 8px 0 0; padding: 0; list-style: none; }
.abl-go .abl-go__list li { position: relative; margin: 0; padding: 4px 0 4px 24px; font-size: 14px; color: #1F2937; }
.abl-go .abl-go__list li::before { content: ""; position: absolute; left: 4px; top: 9px; width: 9px; height: 5px; border-left: 2px solid #0B7A55; border-bottom: 2px solid #0B7A55; transform: rotate(-45deg); }
.abl-go .abl-go__note { margin: 14px 0 0; padding: 10px 12px; background: #F8FAFC; border-radius: 8px; font-size: 13px; color: #4B5563; }
.abl-go .abl-go__links { margin: 14px 0 0; display: flex; flex-wrap: wrap; gap: 8px 16px; }
.abl-go .abl-go__links a { color: #0B4F8A; font-weight: 600; text-decoration: underline; }
@keyframes abl-go-in { from { opacity: 0; transform: translateY(12px) scale(.97); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
	.abl-go .abl-go__btn, .abl-go .abl-go__dlg[open] { animation: none; transition: none; }
}
@media (forced-colors: active) {
	.abl-go .abl-go__btn { border: 2px solid ButtonText; }
}
