/* ===== GF Solid Bar Ticker (v1.1.0) ===== */
:root { --gfsb-accent:#2e7d32; }
.gfsb-static{background:var(--gfsb-accent); color:#fff; width:100%}
.gfsb-static-inner{padding:12px 16px}
.gfsb-static-title{font-weight:700; font-size:18px; line-height:1}
.gfsb-card{border:1px solid rgba(0,0,0,.08); border-radius:12px; box-shadow:0 4px 18px rgba(0,0,0,.06); overflow:hidden; margin:1rem 0; background:#fff}
.gfsb-card-header{background:var(--gfsb-accent); color:#fff; padding:14px 16px}
.gfsb-card-header h2{margin:0;font-size:20px;line-height:1.2}
.gfsb-card-body{padding:14px 16px}
.gfsb-sep{border:none;border-top:1px solid rgba(0,0,0,.08);margin:14px 0}
.gfsb-help pre{background:#f6f8fa;padding:10px;border-radius:8px;overflow:auto}

/* Freeze any outer animations inside plugin block */
.gfsb-wrap, .gfsb-wrap *{ animation:none!important; transition:none!important; }
.gfsb-frame{ transform:none !important; }

/* Ticker — frame never moves, only track scrolls */
.gfsb-marquee{ position:relative; overflow:hidden; white-space:nowrap; width:100%; padding:12px 16px; border-top:1px solid rgba(0,0,0,.06) }
.gfsb-track{ position:absolute; left:0; top:50%; transform:translate3d(0,-50%,0); white-space:nowrap; will-change:transform }
.gfsb-track>*{ display:inline-block; padding:0 .8rem; text-decoration:none }
