.ff-nudis-opk{--navy:#041821;--sea:#0b4f6c;--teal:#0e8a8a;--aqua:#3cc6c0;--foam:#e8f6f5;--border:#dbe6ea;--accent:#f2a541;--r:16px;--sh:0 6px 24px rgba(4,24,33,.08);max-width:1100px;margin:1rem auto;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#16303b;box-sizing:border-box}
.ff-nudis-opk *{box-sizing:border-box}
.ffn-title{font-size:1.4rem;margin:0 0 12px;color:var(--navy)}
.ffn-form{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}
.ffn-drop{position:relative;display:flex!important;flex-direction:column;align-items:center;gap:4px;border:2px dashed #9cc5cc;border-radius:var(--r);background:#fff;padding:18px;text-align:center;cursor:pointer;display:block}
.ffn-drop small{color:#5b7380}.ffn-drop.over,.ffn-drop:hover{border-color:var(--teal);background:var(--foam)}
.ffn-drop input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.ffn-ico{font-size:2rem}.ffn-drop small{font-size:.8rem}
.ffn-drop.busy{opacity:.55;pointer-events:none}.ffn-drop.busy input{display:none}
.ffn-drop:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.ffn-btn{flex:0 0 auto;min-height:48px;padding:0 28px;background:var(--teal);color:#fff;border:0;border-radius:12px;font-weight:700;font-size:1rem;cursor:pointer;align-self:center}
.ffn-btn:disabled{opacity:.5;cursor:default}
.ffn-m{margin:14px 0;padding:12px 14px;border-radius:12px;background:#f1f6f8}.ffn-m.ok{background:var(--foam)}.ffn-m.err{background:#fdecea;color:#8a1c1c}
.ffn-spin{display:inline-block;width:14px;height:14px;border:2px solid var(--teal);border-right-color:transparent;border-radius:50%;animation:ffnspin .8s linear infinite;vertical-align:-2px}@keyframes ffnspin{to{transform:rotate(360deg)}}
.ffn-compare{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;background:#fff;border:1px solid var(--border);border-radius:var(--r);padding:16px;box-shadow:var(--sh)}
.ffn-compare figure{margin:0;min-width:0}
.ffn-mine img{display:block;width:auto;max-width:300px;max-height:400px;height:auto;border-radius:12px}
.ffn-ref img{display:block;width:100%;max-width:520px;aspect-ratio:4/3;object-fit:cover;border-radius:12px;background:var(--foam)}
.ffn-none{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;max-width:520px;background:#f4f6f8;color:#6b7280;border:1px dashed #cbd5e1;border-radius:12px}
.ffn-none[hidden],.ffn-ref img[hidden]{display:none}
.ffn-compare figcaption{font-size:.88rem;color:#2c4652;margin-top:6px}
.ffn-ct{font-size:1.3rem;margin:24px 0 12px;color:var(--navy)}
.ffn-cands{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.ffn-cand{background:#fff;border:2px solid var(--border);border-radius:var(--r);padding:16px;box-shadow:var(--sh);cursor:pointer;transition:border-color .2s,transform .2s;min-width:0}
.ffn-cand:hover{transform:translateY(-2px)}.ffn-cand.sel{border-color:var(--teal);box-shadow:0 0 0 3px rgba(14,138,138,.15),var(--sh)}
.ffn-cand header{display:flex;align-items:center;gap:10px}
.ffn-cand .rank{flex:0 0 30px;height:30px;border-radius:50%;background:var(--navy);color:var(--aqua);display:grid;place-items:center;font-weight:700;font-size:.85rem}
.ffn-cand .names{flex:1;min-width:0;display:flex;flex-direction:column}
.ffn-cand .sci{font-style:italic;font-weight:700;color:var(--navy);overflow-wrap:anywhere}.ffn-cand .com{font-size:.85rem;color:#3d5a66}
.ffn-cand .pct{font-weight:800;color:var(--teal);font-size:1.15rem;font-variant-numeric:tabular-nums}
.ffn-cand .conf{height:10px;background:#e6eff2;border-radius:99px;margin:12px 0;overflow:hidden}
.ffn-cand .conf-fill{height:100%;width:0;background:linear-gradient(90deg,var(--sea),var(--teal),var(--aqua));border-radius:99px;transition:width 1.1s cubic-bezier(.2,.8,.2,1)}
.ffn-cand .thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.ffn-cand .thumb{display:block;border-radius:8px;overflow:hidden;background:var(--foam);aspect-ratio:4/3}
.ffn-cand .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ffn-cand .lnk{display:inline-flex;align-items:center;gap:8px;margin-top:10px;font-size:.88rem;font-weight:600;color:var(--sea)}
.ffn-cand .opk-mini{width:36px;height:36px;object-fit:cover;border-radius:6px}
.ffn-note,.ffn-foot{font-size:.8rem;color:#5b7380}.ffn-span{grid-column:1/-1;margin:0}
@media(max-width:640px){.ffn-compare{grid-template-columns:1fr}.ffn-mine img{max-width:min(300px,100%)}.ffn-ref img,.ffn-none{max-width:100%}.ffn-btn{width:100%}.ffn-cands{grid-template-columns:1fr}}

/* candidatas fuera de zona (in_region === false) */
.ff-nudis-opk .ffn-cand.ffn-out{background:#fbf6ee;border-color:#e6cfa8}
.ff-nudis-opk .ffn-cand.ffn-out .sci{color:#8a5a14}
.ff-nudis-opk .ffn-cand.ffn-out .conf-fill{background:#d9a24a}
.ff-nudis-opk .ffn-tag{display:inline-block;align-self:flex-start;width:auto;margin-left:.4em;padding:0 .45em;border-radius:999px;font-size:.72em;font-style:normal;font-weight:500;line-height:1.6;color:#8a5a14;background:#f3e3c6;vertical-align:middle;white-space:nowrap}
/* 2.3.0 modo curador (solo usuarios con la capacidad configurada) */
.ff-nudis-opk .ffn-cur-yes{margin-top:.5em;padding:.35em .8em;border:1px solid #0b7a75;background:#fff;color:#0b7a75;border-radius:6px;cursor:pointer;font:inherit;font-size:.9em;width:auto}
.ff-nudis-opk .ffn-cur-yes:hover,.ff-nudis-opk .ffn-cur-yes.done{background:#0b7a75;color:#fff}
.ff-nudis-opk .ffn-cur{margin-top:.8em;padding:.6em .8em;border:1px dashed #b45309;border-radius:8px;background:#fffbeb;font-size:.9em}
.ff-nudis-opk .ffn-cur button{padding:.3em .7em;border:1px solid #b45309;background:#fff;color:#b45309;border-radius:6px;cursor:pointer;font:inherit;width:auto}
.ff-nudis-opk .ffn-cur input[type=text]{width:auto;min-width:14em;max-width:100%;margin:.4em .4em 0 0;padding:.3em .5em}
.ff-nudis-opk .ffn-cur-msg.ok{color:#0b7a75;margin-left:.5em}.ff-nudis-opk .ffn-cur-msg.err{color:#b91c1c;margin-left:.5em}
