.cgfa-wrap { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; max-width:700px; margin:0 auto; }
.cgfa-card { background:#fff; border:1px solid #e8e8e8; border-radius:14px; padding:28px; margin-bottom:20px; box-shadow:0 2px 8px rgba(0,0,0,.06); }
.cgfa-join { text-align:center; }
.cgfa-icon { font-size:2.5rem; margin-bottom:12px; }
.cgfa-card h2,.cgfa-card h3 { margin-top:0; }
.cgfa-desc { color:#555; font-size:1rem; margin:8px 0; }
.cgfa-sub  { color:#777; font-size:.88rem; }
.cgfa-muted { color:#888; font-size:.88rem; }
.cgfa-features { display:flex; gap:12px; flex-wrap:wrap; justify-content:center; margin:16px 0; font-size:.88rem; color:#555; }
.cgfa-btn-primary { display:inline-flex; align-items:center; gap:6px; padding:12px 28px; background:#1a6b6b; color:#fff; border:none; border-radius:8px; font-size:1rem; font-weight:600; cursor:pointer; transition:background .2s; }
.cgfa-btn-primary:hover { background:#155858; }
.cgfa-btn-secondary { display:inline-flex; align-items:center; gap:6px; padding:12px 28px; background:#fff; color:#1a6b6b; border:2px solid #1a6b6b; border-radius:8px; font-size:1rem; font-weight:600; cursor:pointer; transition:all .2s; }
.cgfa-btn-secondary:hover { background:#1a6b6b; color:#fff; }
.cgfa-full { width:100%; justify-content:center; }
.cgfa-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:20px; }
.cgfa-stat { background:#f8fafa; border:1px solid #e0eaea; border-radius:10px; padding:16px; text-align:center; }
.cgfa-stat .v { font-size:1.5rem; font-weight:700; color:#1a6b6b; }
.cgfa-stat .l { font-size:.78rem; color:#888; margin-top:3px; }
.cgfa-bar { background:#e0e0e0; border-radius:4px; height:6px; margin-top:8px; }
.cgfa-bar-fill { background:#1a6b6b; border-radius:4px; height:6px; }
.cgfa-bar-lbl { font-size:.72rem; color:#888; margin-top:3px; }
.cgfa-refbox { display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:#f5f5f5; border-radius:8px; padding:10px 14px; }
.cgfa-refbox code { flex:1; font-size:.85rem; word-break:break-all; background:none; }
.cgfa-copy-btn { padding:6px 14px; background:#1a6b6b; color:#fff; border:none; border-radius:6px; cursor:pointer; font-size:.85rem; }
.cgfa-table { width:100%; border-collapse:collapse; font-size:.88rem; }
.cgfa-table th { text-align:left; padding:8px; background:#f5f5f5; border-bottom:2px solid #e0e0e0; }
.cgfa-table td { padding:8px; border-bottom:1px solid #f0f0f0; }
.cgfa-badge { display:inline-block; padding:2px 8px; border-radius:10px; font-size:.78rem; font-weight:600; }
.cgfa-badge-pending { background:#fff8e1; color:#e65100; }
.cgfa-badge-paid { background:#e8f5e9; color:#1b5e20; }
.cgfa-alert { padding:10px 14px; border-radius:8px; margin-bottom:12px; font-size:.88rem; }
.cgfa-alert-warn { background:#fff8e1; color:#e65100; border:1px solid #ffe082; }
.cgfa-alert-ok { background:#e8f5e9; color:#1b5e20; border:1px solid #a5d6a7; }
.cgfa-alert-error { background:#ffebee; color:#c62828; border:1px solid #ef9a9a; }
.cgfa-lbl { display:block; font-size:.82rem; font-weight:600; color:#444; margin-bottom:4px; }
.cgfa-msg { font-size:.85rem; padding:6px 0; min-height:20px; }
.cgfa-err { color:#c62828; }
.cgfa-ok  { color:#1b5e20; }
.cgfa-code-pick { background:#f7fafa; border:1.5px solid #d4eaea; border-radius:10px; padding:14px 16px; margin:18px 0 20px; text-align:left; }
.cgfa-code-pick label { display:block; font-size:.88rem; font-weight:600; color:#2d5f5f; margin-bottom:8px; }
.cgfa-code-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.cgfa-code-prefix { font-size:.78rem; color:#888; font-family:monospace; }
.cgfa-code-row input[type=text] { padding:8px 12px; border:1.5px solid #b0d4d4; border-radius:8px; font-family:monospace; text-transform:uppercase; width:160px; outline:none; }
.cgfa-code-row input[type=text]:focus { border-color:#1a6b6b; }
/* Modale */
#cgfa-overlay { position:fixed; top:0; left:0; right:0; bottom:0; width:100%; height:100%; background:linear-gradient(135deg,rgba(10,30,50,.62),rgba(0,0,0,.5)); backdrop-filter:blur(6px); z-index:2147483647; display:none; align-items:center; justify-content:center; padding:16px; isolation:isolate; }
#cgfa-modal { background:#fff; border-radius:18px; width:100%; max-width:440px; padding:36px 32px 28px; position:relative; box-shadow:0 32px 80px rgba(0,0,0,.35); animation:cgfaUp .25s cubic-bezier(.34,1.56,.64,1); margin-top:0; }
@keyframes cgfaUp { from{transform:translateY(28px) scale(.97);opacity:0} to{transform:none;opacity:1} }
#cgfa-close { position:absolute; top:12px; right:14px; background:none; border:none; font-size:1.2rem; cursor:pointer; color:#888; padding:4px 8px; border-radius:6px; }
#cgfa-close:hover { background:#f0f0f0; }
#cgfa-tabs { display:flex; gap:4px; margin-bottom:22px; background:#f5f5f5; border-radius:10px; padding:4px; }
.cgfa-tab { flex:1; padding:9px 12px; border:none; background:transparent; border-radius:8px; font-size:.9rem; font-weight:600; cursor:pointer; color:#666; transition:all .15s; }
.cgfa-tab.active { background:#fff; color:#1a6b6b; box-shadow:0 1px 4px rgba(0,0,0,.12); }
.cgfa-field { margin-bottom:14px; }
.cgfa-field label { display:block; font-size:.82rem; font-weight:600; color:#444; margin-bottom:5px; }
.cgfa-field input { width:100%; padding:10px 12px; border:1.5px solid #ddd; border-radius:8px; font-size:.95rem; box-sizing:border-box; outline:none; transition:border-color .15s; }
.cgfa-field input:focus { border-color:#1a6b6b; }
.cgfa-remember { display:flex; align-items:center; gap:7px; font-size:.85rem; color:#555; margin-bottom:16px; cursor:pointer; }
.cgfa-remember input[type=checkbox] { width:16px; height:16px; min-width:16px; accent-color:#1a6b6b; cursor:pointer; border:1.5px solid #ccc; border-radius:3px; }
.cgfa-footer { text-align:center; font-size:.78rem; color:#888; margin-top:12px; }
.cgfa-footer a { color:#1a6b6b; }
@media(max-width:600px){.cgfa-stats{grid-template-columns:repeat(2,1fr);}#cgfa-modal{padding:24px 18px 18px;}}