/* RFP Finder cards, skeletons and infinite-scroll anchor (homepage + account). */

.rfp-grid{display:grid;grid-template-columns:1fr;gap:20px;min-height:420px}
@media(min-width:768px){.rfp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.rfp-card{background:var(--bg-card,#0a1020);border:1px solid var(--border,rgba(255,255,255,.07));border-radius:16px;padding:24px;position:relative;overflow:hidden;transition:border-color .3s,transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s;display:flex;flex-direction:column;content-visibility:auto;contain-intrinsic-size:auto 360px}
.rfp-card:hover{border-color:var(--primary,#2f6bff);transform:translateY(-4px);box-shadow:0 20px 40px rgba(0,0,0,.4)}
.rfp-card.unlocked::before{content:'';position:absolute;top:0;left:0;width:100%;height:2px;background:var(--success,#22d39a);box-shadow:0 0 10px var(--success,#22d39a)}
.rfp-card.locked::before{content:'';position:absolute;top:0;left:0;width:100%;height:2px;background:var(--muted,#7c8aa0)}
.rfp-card.locked .rfp-content{filter:blur(4px);user-select:none;pointer-events:none}
.rfp-card.locked:hover .rfp-content{filter:blur(2px)}
.rfp-card.is-entering{animation:t4rfpCardIn .45s cubic-bezier(.16,1,.3,1) both}
@keyframes t4rfpCardIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}

.rfp-content{display:flex;flex-direction:column;flex:1}
.rfp-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px;gap:12px}
.rfp-header-side{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}
.rfp-badge{display:inline-block;padding:4px 10px;border-radius:100px;font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:500}
.badge-web{background:rgba(47,107,255,.12);color:var(--primary-bright,#4a85ff);border:1px solid rgba(47,107,255,.3)}
.badge-ux{background:rgba(0,212,255,.12);color:var(--accent,#00d4ff);border:1px solid rgba(0,212,255,.3)}
.badge-mobile{background:rgba(255,59,92,.12);color:var(--danger,#ff3b5c);border:1px solid rgba(255,59,92,.3)}
.badge-seo{background:rgba(255,181,71,.12);color:var(--warn,#ffb547);border:1px solid rgba(255,181,71,.3)}
.rfp-date{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted-2,#9fb0c8);white-space:nowrap}
.rfp-free-tag{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:#062b1f;background:var(--success,#22d39a);border-radius:100px;padding:3px 8px;font-weight:700}

.rfp-title{font-family:'Sora',sans-serif;font-size:19px;font-weight:700;letter-spacing:-.02em;margin:0 0 12px;line-height:1.3;color:var(--fg,#f8fafc)}
.rfp-summary{font-size:13.5px;color:var(--muted-2,#9fb0c8);line-height:1.6;margin:0 0 20px;flex:1}
.rfp-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-top:16px;border-top:1px solid var(--border,rgba(255,255,255,.07))}
@media(min-width:1100px){.rfp-meta{grid-template-columns:repeat(4,minmax(0,1fr))}}
.meta-item .k{font-family:'JetBrains Mono',monospace;font-size:9.5px;color:var(--muted-2,#9fb0c8);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px;display:block}
.meta-item .v{font-size:12.5px;color:var(--fg,#f8fafc);font-weight:500;line-height:1.35;word-break:break-word}
.location-value{display:inline-flex;align-items:center;gap:8px}
.location-flag-btn,.language-flag-btn{display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--border-strong,rgba(255,255,255,.14));border-radius:4px;background:rgba(0,0,0,.25);cursor:pointer;line-height:0;overflow:hidden;transition:border-color .2s,transform .2s,box-shadow .2s}
.location-flag-btn:hover,.language-flag-btn:hover{border-color:var(--primary,#2f6bff);transform:translateY(-1px);box-shadow:0 4px 12px rgba(47,107,255,.25)}
.location-flag-btn:focus-visible,.language-flag-btn:focus-visible{outline:2px solid var(--primary-bright,#4a85ff);outline-offset:2px}
.location-flag-btn img,.language-flag-btn img{display:block;width:22px;height:16px;object-fit:cover}
.location-code,.language-code{font-weight:600}

.rfp-footer{margin-top:20px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.rfp-action{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:8px;font-size:12.5px;font-weight:600;text-decoration:none;transition:all .2s;font-family:inherit}
.unlocked .rfp-action{background:var(--success,#22d39a);color:#070b16}
.unlocked .rfp-action:hover{background:#3aecab;transform:translateY(-1px)}
.locked .rfp-action{background:transparent;border:1px solid var(--border-strong,rgba(255,255,255,.14));color:var(--muted-2,#9fb0c8);cursor:pointer}

.lock-overlay{position:absolute;inset:0;background:rgba(10,16,32,.7);backdrop-filter:blur(2px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:5;opacity:0;transition:opacity .3s}
.rfp-card.locked:hover .lock-overlay,.rfp-card.locked:focus-within .lock-overlay{opacity:1}
@media(hover:none){.rfp-card.locked .lock-overlay{opacity:1;background:rgba(10,16,32,.55)}}
.lock-icon{width:48px;height:48px;border-radius:50%;background:rgba(47,107,255,.15);border:1px solid var(--primary,#2f6bff);display:flex;align-items:center;justify-content:center;color:var(--primary-bright,#4a85ff)}
.lock-text{text-align:center}
.lock-text h4{font-family:'Sora',sans-serif;font-size:15px;font-weight:600;margin:0 0 4px;color:var(--fg,#f8fafc)}
.lock-text p{font-size:11.5px;color:var(--muted-2,#9fb0c8);margin:0}
.lock-btn{padding:10px 20px;background:var(--primary,#2f6bff);color:#fff;border-radius:8px;font-size:12.5px;font-weight:600;border:none;cursor:pointer;transition:all .2s;font-family:inherit}
.lock-btn:hover{background:var(--primary-bright,#4a85ff);transform:translateY(-1px)}

/* Skeleton placeholders (first paint and while the next batch loads) */
.rfp-skeleton{pointer-events:none;gap:12px;content-visibility:visible}
.rfp-skeleton:hover{transform:none;border-color:var(--border,rgba(255,255,255,.07));box-shadow:none}
.rfp-skeleton .sk{display:block;height:12px;border-radius:6px;background:linear-gradient(90deg,rgba(255,255,255,.04) 0%,rgba(255,255,255,.09) 40%,rgba(255,255,255,.04) 80%);background-size:300% 100%;animation:t4rfpShimmer 1.4s ease-in-out infinite}
.rfp-skeleton .sk-row{display:flex;justify-content:space-between;margin-bottom:6px}
.rfp-skeleton .sk-pill{width:78px;height:20px;border-radius:100px}
.rfp-skeleton .sk-date{width:52px}
.rfp-skeleton .sk-title{height:18px;width:88%}
.rfp-skeleton .sk-line{width:100%}
.rfp-skeleton .sk-short{width:58%}
.rfp-skeleton .sk-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding-top:16px;margin-top:8px;border-top:1px solid var(--border,rgba(255,255,255,.07))}
.rfp-skeleton .sk-meta .sk{height:26px}
@keyframes t4rfpShimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}

/* Anchor shown at the end of each batch of 8 */
.rfp-feed-status{display:flex;justify-content:center;margin-top:28px}
.rfp-feed-anchor{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 18px;padding:14px 18px;border:1px solid var(--border-strong,rgba(255,255,255,.14));border-radius:14px;background:rgba(10,16,32,.85);backdrop-filter:blur(8px);box-shadow:0 10px 30px rgba(0,0,0,.25);max-width:640px;width:100%}
.rfp-feed-count{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.04em;color:var(--fg-2,#e2e8f0)}
.rfp-feed-bar{flex:1 1 120px;max-width:160px;height:4px;border-radius:4px;background:rgba(255,255,255,.08);overflow:hidden}
.rfp-feed-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--primary,#2f6bff),var(--accent,#00d4ff));border-radius:4px;transition:width .4s ease}
.rfp-feed-hint{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted-2,#9fb0c8)}
.rfp-feed-hint svg{animation:t4rfpBounce 1.6s ease-in-out infinite;color:var(--primary-bright,#4a85ff)}
.rfp-feed-anchor.is-loading .rfp-feed-hint svg{animation:t4rfpSpin 1s linear infinite}
.rfp-feed-more{appearance:none;border:1px solid rgba(74,133,255,.45);background:rgba(47,107,255,.12);color:#fff;font-family:inherit;font-size:12.5px;font-weight:600;padding:8px 14px;border-radius:9px;cursor:pointer;transition:background .2s,border-color .2s}
.rfp-feed-more:hover{background:rgba(47,107,255,.28);border-color:var(--primary-bright,#4a85ff)}
.rfp-feed-more:disabled{opacity:.55;cursor:progress}
.rfp-feed-anchor.is-complete{background:transparent;box-shadow:none;border-style:dashed}
.rfp-feed-anchor.is-complete .rfp-feed-count{color:var(--muted-2,#9fb0c8)}
.rfp-feed-anchor.is-error{border-color:rgba(255,59,92,.45)}
.rfp-feed-empty{grid-column:1/-1;text-align:center;padding:60px 20px;color:var(--muted-2,#9fb0c8);border:1px dashed var(--border-strong,rgba(255,255,255,.14));border-radius:16px}
.rfp-preview-cta{display:flex;justify-content:center;width:100%;margin:4px auto 8px}
.rfp-preview-cta .btn{min-width:220px;justify-content:center}

.finder-viewbar{display:flex;justify-content:flex-end;margin:8px 0 16px}
.view-toggle{display:flex;align-items:stretch;background:rgba(10,16,32,.92);border:1px solid var(--border-strong,rgba(255,255,255,.14));border-radius:10px;padding:3px;gap:2px}
.view-btn{appearance:none;background:transparent;border:0;border-radius:8px;color:var(--muted-2,#9fb0c8);font-family:inherit;font-size:13.5px;font-weight:600;padding:10px 14px;cursor:pointer;white-space:nowrap}
.view-btn:hover{color:#fff}
.view-btn.is-active{background:rgba(47,107,255,.28);color:#fff}

.rfp-grid.is-list{grid-template-columns:1fr;gap:8px}
.account-main .rfp-grid.is-list{grid-template-columns:1fr}
.rfp-grid.is-list .rfp-card{padding:12px 16px;border-radius:12px;contain-intrinsic-size:auto 72px}
.rfp-grid.is-list .rfp-card:hover{transform:none}
.rfp-grid.is-list .rfp-content{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"head title meta action";align-items:center;gap:8px 16px;width:100%}
.rfp-grid.is-list .rfp-header{grid-area:head;margin:0;align-items:center}
.rfp-grid.is-list .rfp-title{grid-area:title;margin:0;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rfp-grid.is-list .rfp-summary{display:none}
.rfp-grid.is-list .rfp-meta{grid-area:meta;display:flex;gap:14px;padding:0;border:0}
.rfp-grid.is-list .meta-item .k{display:none}
.rfp-grid.is-list .rfp-footer{grid-area:action;margin:0}
.rfp-grid.is-list .rfp-action{padding:8px 12px;white-space:nowrap}
.rfp-grid.is-list .lock-overlay{display:none}
.rfp-grid.is-list .rfp-card.locked .rfp-content{filter:none;user-select:auto;pointer-events:auto}
.rfp-grid.is-list .rfp-skeleton .sk-line,
.rfp-grid.is-list .rfp-skeleton .sk-meta{display:none}
.rfp-grid.is-list .rfp-skeleton{min-height:56px}
@media(max-width:800px){
  .rfp-grid.is-list .rfp-content{grid-template-columns:1fr auto;grid-template-areas:"head action" "title title" "meta meta"}
  .rfp-grid.is-list .rfp-title{white-space:normal}
  .rfp-grid.is-list .rfp-meta{flex-wrap:wrap;gap:8px 14px}
  .rfp-grid.is-list .meta-item .k{display:block}
}
.rfp-sentinel{height:1px;width:100%}
@keyframes t4rfpBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}
@keyframes t4rfpSpin{to{transform:rotate(360deg)}}

@media(max-width:768px){
  .rfp-grid{grid-template-columns:1fr}
  .rfp-card.locked .rfp-content{filter:blur(5px)}
  .rfp-feed-bar{display:none}
}
@media(prefers-reduced-motion:reduce){
  .rfp-card.is-entering,.rfp-skeleton .sk,.rfp-feed-hint svg{animation:none!important}
}
