.fbsw-wrapper { --gap: 16px; }
.fbsw-grid { display: grid; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); gap: var(--gap); }
.fbsw-wrapper.columns-1 .fbsw-grid { --cols: 1; }
.fbsw-wrapper.columns-2 .fbsw-grid { --cols: 2; }
.fbsw-wrapper.columns-3 .fbsw-grid { --cols: 3; }
.fbsw-card { background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 16px rgba(0,0,0,.08); display: flex; flex-direction: column; }
.fbsw-card img { width: 100%; height: auto; display: block; }
.fbsw-content { padding: 12px 14px 14px; }
.fbsw-link { font-size: 12px; opacity: .8; text-decoration: none; }
.fbsw-error, .fbsw-empty { background: #fff3cd; border: 1px solid #ffeeba; color: #856404; padding: 12px; border-radius: 8px; }
.fbsw-more-wrap { text-align: center; position: relative; min-height: 44px; display: flex; align-items: center; justify-content: center; gap: 10px; }
.fbsw-more { display: inline-block; margin: 0 auto; }
.fbsw-more { display:inline-block; border:0; background:#1a73e8; color:#fff; padding:10px 16px; border-radius:8px; cursor:pointer; }
.fbsw-more[disabled] { opacity:.5; cursor:not-allowed; }
.fbsw-spinner { 
  display:none; width:22px; height:22px; border:3px solid rgba(26,115,232,.2); border-top-color:#1a73e8; border-radius:50%;
  position:absolute; left:50%; transform:translateX(-50%); top:0;
  animation: fbsw-spin 1s linear infinite;
}
.fbsw-spinner.is-active { display:block; }
@keyframes fbsw-spin { to { transform: translateX(-50%) rotate(360deg); } }
@media (max-width: 768px) { .fbsw-wrapper.columns-3 .fbsw-grid { --cols: 2; } }
@media (max-width: 480px) { .fbsw-wrapper .fbsw-grid { --cols: 1; } }
