/* FreeBuff button pack. Load after page styles. */
:root{--btn-radius:6px;--btn-focus:#b5cea5;--btn-height:36px;--btn-edge:#ffffff18}
.btn{--btn-fill:#292c28;--btn-hover:#343932;--btn-ink:#dde4d6;--btn-stroke:#ffffff20;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:9px;flex-shrink:0;min-width:0;min-height:var(--btn-height);height:var(--btn-height);padding:0 13px;margin:0;border:1px solid var(--btn-stroke);border-radius:var(--btn-radius);background:var(--btn-fill);color:var(--btn-ink);box-shadow:inset 0 1px 0 var(--btn-edge),0 1px 2px #0002;font:500 12px/1 var(--font,'Google Sans',Arial,sans-serif);letter-spacing:.05px;text-decoration:none;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;transition:background .14s,border-color .14s,box-shadow .14s,transform .1s}
.btn:hover{background:var(--btn-hover);border-color:#ffffff36;color:var(--btn-ink);box-shadow:inset 0 1px 0 var(--btn-edge),0 2px 5px #0003}
.btn:active{transform:translateY(1px);box-shadow:inset 0 1px 3px #0002}
.btn:focus-visible{outline:2px solid var(--btn-focus);outline-offset:3px}
.btn-primary{--btn-fill:#b5cea5;--btn-hover:#c5dbb7;--btn-ink:#1c2816;--btn-stroke:#c9dfb7;--btn-edge:#eff8e466;box-shadow:inset 0 1px 0 var(--btn-edge),0 1px 3px #0003}
.btn-primary:hover{border-color:#e3efd7}
.btn-soft{--btn-fill:#b5cea511;--btn-hover:#b5cea521;--btn-ink:#c5dab5;--btn-stroke:#b5cea530;--btn-edge:#d8e9c60a;box-shadow:inset 0 1px 0 var(--btn-edge)}
.btn-soft:hover{border-color:#b5cea55a}
.btn-ghost{--btn-fill:transparent;--btn-hover:#ffffff07;--btn-ink:#aab2a3;--btn-stroke:transparent;--btn-edge:transparent;box-shadow:none}
.btn-ghost:hover{border-color:transparent;color:#e0e7d9;box-shadow:none}
.btn-ghost:active{box-shadow:none}
.btn-danger{--btn-fill:#c9797014;--btn-hover:#c9797025;--btn-ink:#e5ada6;--btn-stroke:#c9797047;--btn-focus:#e5ada6;--btn-edge:#f2c5bf0a;box-shadow:none}
.btn-danger:hover{border-color:#c9797070;box-shadow:none}
.btn-sm{--btn-height:30px;padding-inline:10px;font-size:11px;gap:7px;--btn-radius:5px}
.btn-xs{--btn-height:26px;padding-inline:9px;font-size:10px;gap:6px;--btn-radius:4px}
.btn-lg{--btn-height:42px;padding-inline:17px;font-size:13px;gap:11px}
.btn-icon{width:var(--btn-height);padding:0}
.btn-block{display:flex;width:100%;justify-content:space-between}
.btn svg{width:14px;height:14px;flex-shrink:0;display:block;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;fill:none;transition:transform .14s}
.btn-xs svg{width:12px;height:12px}
.btn .btn-label{overflow:hidden;text-overflow:ellipsis;min-width:0}
.btn[aria-pressed=true]{--btn-fill:#b5cea51b;--btn-ink:#c5dab5;--btn-stroke:#b5cea55a;box-shadow:inset 0 1px 2px #0002}
.btn:disabled,.btn[aria-disabled=true]{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none;pointer-events:auto}
.btn:disabled:hover,.btn[aria-disabled=true]:hover{background:var(--btn-fill);border-color:var(--btn-stroke);color:var(--btn-ink)}
.btn[aria-busy=true]{cursor:progress;opacity:.85;transform:none}
.btn-spinner{width:12px;height:12px;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:btn-spin .7s linear infinite;flex-shrink:0}
@keyframes btn-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.btn,.btn svg{transition:none}.btn-spinner{animation:none;border-style:dotted}}
/* Page integration: same components, compact placement. */
.header nav .btn{padding:0 9px;background:var(--btn-fill);color:var(--btn-ink);border:1px solid var(--btn-stroke);font-size:11px}
.header nav .btn:hover{background:var(--btn-hover);color:#e0e7d9}
.dialog-top .btn{font:500 12px/1 var(--font);padding:0;color:var(--btn-ink)}
footer .btn{padding:0 6px;color:var(--btn-ink);font:500 10px/1 var(--font)}
.community-strip a.btn{background:var(--btn-fill);border:1px solid var(--btn-stroke);padding:0 11px;gap:8px;color:var(--btn-ink)}
.community-strip a.btn:hover{background:var(--btn-hover)}
.pagination .btn{font:500 11px/1 var(--font);padding:0 10px;border-color:var(--btn-stroke);background:var(--btn-fill)}
/* Loading replaces the trailing icon without changing the button's width. */
.btn[aria-busy=true] svg{visibility:hidden}
.btn-spinner{position:absolute;right:3px;width:9px;height:9px}
.btn:has(svg) .btn-spinner{right:13px;width:12px;height:12px}
.btn-sm:has(svg) .btn-spinner{right:10px}
.btn-xs:has(svg) .btn-spinner{right:9px;width:10px;height:10px}
.btn-icon .btn-spinner{right:auto}

/* The hero's secondary action has a quiet boundary beside the primary. */
.btn-secondary-cta{--btn-fill:#ffffff03;--btn-hover:#b5cea512;--btn-ink:#c2ccba;--btn-stroke:#b5cea53b;--btn-edge:#ffffff08;border-radius:999px;padding-inline:13px;box-shadow:inset 0 1px 0 var(--btn-edge)}
.btn-secondary-cta:hover{border-color:#b5cea552;box-shadow:inset 0 1px 0 #ffffff0a}
.event-body .btn-block{padding-inline:12px}
