.ffdemo{font-family:inherit;color:var(--ffdemo-text);max-width:860px;margin:0 auto}
.ffdemo-card{background:var(--ffdemo-bg);border:1px solid rgba(0,0,0,.12);border-radius:12px;padding:16px;margin:12px 0}
.ffdemo-title{font-size:1.1rem;margin:0 0 6px}
.ffdemo-desc{margin:0 0 10px;opacity:.85}
.ffdemo-field{margin:8px 0}
.ffdemo-input{width:120px;padding:8px;border-radius:8px;border:1px solid rgba(0,0,0,.25)}
.ffdemo-textarea{width:100%;padding:10px;border-radius:10px;border:1px solid rgba(0,0,0,.25);box-sizing:border-box}
.ffdemo-radio,.ffdemo-check{display:block;margin:6px 0}
.ffdemo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px}
@media (max-width: 520px){.ffdemo-grid{grid-template-columns:1fr}}
.ffdemo-label{display:block;font-weight:600;margin:0 0 6px}
.ffdemo-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.ffdemo-btn{display:inline-block;background:var(--ffdemo-primary);color:#fff;border:none;border-radius:10px;padding:10px 14px;text-decoration:none;cursor:pointer}
.ffdemo-btn:disabled{opacity:.5;cursor:not-allowed}
.ffdemo-btn-secondary{background:transparent;color:var(--ffdemo-primary);border:1px solid var(--ffdemo-primary)}
.ffdemo-hint{font-size:.9rem;opacity:.75;margin:8px 0 0}
.ffdemo-summary{font-size:1.05rem;margin:6px 0 0}
.ffdemo-item-header{display:flex;justify-content:space-between;align-items:center;gap:10px}
.ffdemo-badge{font-size:.85rem;padding:2px 8px;border-radius:999px;background:rgba(0,0,0,.08)}