/* RankNest Engine UI. Uses theme tokens when present, with safe fallbacks. */
.rn-app,.rn-public,.rn-market,.rn-pricing,.rn-qa,.rn-leader,.rn-listing,.rn-fees,.rn-pubstats{--rn-p:var(--rn-primary,#4f46e5);--rn-a:var(--rn-accent,#10b981);--rn-t:var(--rn-text,#0f172a);--rn-m:var(--rn-muted-c,#64748b);--rn-b:var(--rn-border,#e2e8f0);--rn-bg:var(--rn-surface,#fff);--rn-s:var(--rn-soft,#f8fafc);--rn-r:var(--rn-radius,14px);color:var(--rn-t)}
.rn-app *,.rn-public *,.rn-market *{box-sizing:border-box}
.rn-h2{font-size:1.35rem;margin:0 0 1rem}
.rn-muted,.rn-hint{color:var(--rn-m);font-size:.92em}
.rn-hint{display:block;margin-top:.25rem}
.rn-card{background:var(--rn-bg);border:1px solid var(--rn-b);border-radius:var(--rn-r);padding:1.25rem;margin:0 0 1rem;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.rn-card h3{margin:0 0 .6rem;font-size:1.05rem}
.rn-card--link{display:block;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}
.rn-card--link:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(15,23,42,.08)}
.rn-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.rn-grid--2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.rn-grid--3{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.rn-cols{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end}
.rn-cols--pk{grid-template-columns:2fr 1fr 1fr}
.rn-row{display:flex;gap:.75rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.rn-row--end{justify-content:flex-end}
.rn-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-top:.75rem}
.rn-actions form{display:inline}
.rn-app label{display:block;font-weight:600;font-size:.92rem;margin:0 0 .75rem}
.rn-app input[type=text],.rn-app input[type=url],.rn-app input[type=email],.rn-app input[type=number],.rn-app input[type=search],.rn-app select,.rn-app textarea,.rn-public textarea,.rn-listing select,.rn-listing input[type=url],.rn-listing input[type=number],.rn-listing textarea,.rn-filters input,.rn-filters select,.rn-copy input,.rn-qa textarea,.rn-qa input[type=text],.rn-report select,.rn-report textarea{width:100%;font:inherit;font-weight:400;padding:.6rem .75rem;border:1px solid var(--rn-b);border-radius:10px;background:var(--rn-bg);color:var(--rn-t);margin-top:.3rem}
.rn-app textarea{min-height:90px}
.rn-check,.rn-checks label{display:flex !important;gap:.5rem;align-items:center;font-weight:400 !important}
.rn-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.25rem .75rem}
.rn-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font:inherit;font-weight:600;padding:.6rem 1.1rem;border-radius:10px;border:1px solid var(--rn-b);background:var(--rn-bg);color:var(--rn-t);cursor:pointer;text-decoration:none;line-height:1.2}
.rn-btn:hover{border-color:var(--rn-p);color:var(--rn-p)}
.rn-btn--primary{background:var(--rn-p);border-color:var(--rn-p);color:#fff}
.rn-btn--primary:hover{filter:brightness(1.08);color:#fff}
.rn-btn--ghost{background:transparent}
.rn-btn--sm{padding:.35rem .7rem;font-size:.85rem}
.rn-btn--block{width:100%}
.rn-btn[disabled]{opacity:.55;cursor:not-allowed}
.rn-alert{padding:.8rem 1rem;border-radius:10px;margin:0 0 1rem;background:#eef2ff;border:1px solid #c7d2fe}
.rn-alert--ok{background:#ecfdf5;border-color:#a7f3d0}
.rn-alert--error{background:#fef2f2;border-color:#fecaca}
.rn-alert--warn,.rn-demo-flag{background:#fffbeb;border:1px solid #fde68a;padding:.6rem 1rem;border-radius:10px;margin:0 0 1rem;display:block}
.rn-table{width:100%;border-collapse:collapse;font-size:.93rem}
.rn-table th,.rn-table td{text-align:left;padding:.6rem .5rem;border-bottom:1px solid var(--rn-b);vertical-align:top}
.rn-table th{color:var(--rn-m);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}
.rn-stats{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));margin-bottom:1rem}
.rn-stat{background:var(--rn-bg);border:1px solid var(--rn-b);border-radius:var(--rn-r);padding:1rem}
.rn-stat span{display:block;color:var(--rn-m);font-size:.85rem}
.rn-stat strong{display:block;font-size:1.6rem;margin:.15rem 0}
.rn-stat a{font-size:.85rem}
.rn-stat--main{background:linear-gradient(135deg,var(--rn-p),#7c3aed);color:#fff;border:0}
.rn-stat--main span,.rn-stat--main a{color:rgba(255,255,255,.85)}
.rn-tag,.rn-pill,.rn-badge{display:inline-block;font-size:.75rem;font-weight:600;padding:.15rem .55rem;border-radius:999px;background:var(--rn-s);border:1px solid var(--rn-b);color:var(--rn-m);white-space:nowrap}
.rn-tags{display:flex;flex-wrap:wrap;gap:.35rem}
.rn-tag--feat{background:#eef2ff;color:var(--rn-p);border-color:#c7d2fe}
.rn-tag--urgent{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.rn-pill--live,.rn-pill--active,.rn-pill--approved,.rn-pill--completed,.rn-pill--paid{background:#ecfdf5;color:#047857;border-color:#a7f3d0}
.rn-pill--pending,.rn-pill--delivered,.rn-pill--unpaid{background:#fffbeb;color:#b45309;border-color:#fde68a}
.rn-pill--rejected,.rn-pill--disputed,.rn-pill--suspended,.rn-pill--refunded,.rn-pill--cancelled{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.rn-badge{background:#fff7ed;color:#c2410c;border-color:#fed7aa}
.rn-score{font-size:2.4rem;font-weight:800;color:var(--rn-p)}
.rn-big{font-size:2rem;font-weight:800}
.rn-checklist{list-style:none;padding:0;margin:0}
.rn-checklist li{padding:.45rem 0;border-bottom:1px dashed var(--rn-b)}
.rn-pre{white-space:pre-wrap;background:var(--rn-s);border:1px solid var(--rn-b);border-radius:10px;padding:1rem;font-size:.9rem;max-height:520px;overflow:auto}
.rn-copy{display:flex;gap:.5rem;align-items:center}
.rn-copy input{margin:0}
.rn-surf{border:1px solid var(--rn-b);border-radius:var(--rn-r);overflow:hidden;background:var(--rn-bg)}
.rn-surf__bar{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;padding:.75rem 1rem;background:var(--rn-s);border-bottom:1px solid var(--rn-b)}
.rn-surf__site{font-weight:600;flex:1;min-width:180px}
.rn-surf__timer{font-variant-numeric:tabular-nums;color:var(--rn-p);font-weight:600}
.rn-surf__frame{display:block;width:100%;height:70vh;min-height:420px;border:0;background:#fff}
.rn-lgrid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.rn-lcard{background:var(--rn-bg);border:1px solid var(--rn-b);border-radius:var(--rn-r);padding:1.1rem;display:flex;flex-direction:column;gap:.5rem}
.rn-lcard.is-highlight{border-color:var(--rn-p);box-shadow:0 0 0 3px rgba(79,70,229,.12)}
.rn-lcard__top,.rn-lcard__foot{display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.rn-lcard__seller{color:var(--rn-m);font-size:.88rem}
.rn-lcard h3{margin:0;font-size:1.05rem}
.rn-lcard h3 a{color:inherit;text-decoration:none}
.rn-filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.rn-filters input,.rn-filters select{width:auto;flex:1;min-width:160px;margin:0}
.rn-pager{display:flex;gap:.4rem;justify-content:center;margin:1.5rem 0}
.rn-listing{display:grid;gap:1.5rem;grid-template-columns:minmax(0,2fr) minmax(260px,1fr)}
@media (max-width:860px){.rn-listing{grid-template-columns:1fr}.rn-cols--pk{grid-template-columns:1fr}}
.rn-pkg{display:flex !important;justify-content:space-between;align-items:center;gap:.5rem;border:1px solid var(--rn-b);border-radius:10px;padding:.6rem .8rem;margin:.4rem 0 !important;cursor:pointer;font-weight:400 !important}
.rn-pkg input{margin-right:.4rem}
.rn-pkg:has(input:checked){border-color:var(--rn-p);background:#eef2ff}
.rn-seller{display:flex;gap:.75rem;align-items:center}
.rn-seller img{border-radius:50%}
.rn-review{border-top:1px solid var(--rn-b);padding:.75rem 0}
.rn-plans,.rn-packs{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.rn-plan,.rn-pack{background:var(--rn-bg);border:1px solid var(--rn-b);border-radius:var(--rn-r);padding:1.5rem;display:flex;flex-direction:column;gap:.6rem}
.rn-plan--hot{border:2px solid var(--rn-p);box-shadow:0 12px 32px rgba(79,70,229,.15)}
.rn-plan ul{list-style:none;padding:0;margin:.5rem 0;flex:1}
.rn-plan li{padding:.3rem 0}
.rn-plan li:before{content:"✓ ";color:var(--rn-a);font-weight:700}
.rn-price{font-size:2.2rem;font-weight:800}
.rn-price small{font-size:.9rem;color:var(--rn-m);font-weight:500}
.rn-provider{display:flex;gap:.5rem;align-items:center;margin:.5rem 0}
.rn-msg{background:var(--rn-s);border:1px solid var(--rn-b);border-radius:12px;padding:.6rem .8rem;margin:.4rem 0;max-width:85%}
.rn-msg--out{margin-left:auto;background:#eef2ff;border-color:#c7d2fe}
.rn-msg--dispute{background:#fef2f2;border-color:#fecaca}
.rn-thread{display:flex;flex-direction:column;margin-bottom:1rem}
.rn-qlist{list-style:none;padding:0;margin:0}
.rn-qlist li{padding:.75rem 0;border-bottom:1px solid var(--rn-b)}
.rn-accepted{border-left:4px solid var(--rn-a);padding-left:.75rem}
.rn-leader ol{padding-left:1.2rem}
.rn-leader li{padding:.35rem 0}
.rn-banner{display:block;text-align:center;margin:1rem 0}
.rn-banner img{max-width:100%;height:auto;border-radius:10px}
.rn-pubstats{display:flex;gap:2rem;flex-wrap:wrap;justify-content:center}
.rn-pubstats strong{display:block;font-size:2rem}
.rn-partner p{margin:.3rem 0}
.rn-public-wrap{max-width:1100px;margin:2rem auto;padding:0 1rem}
.rn-profile{display:flex;gap:1rem;align-items:center;margin-bottom:1.5rem}
.rn-profile img{border-radius:50%}
.rn-rules{font-size:.9rem;color:var(--rn-m)}
.rn-claim,.rn-report{margin-top:.5rem}
.rn-report summary{cursor:pointer;color:var(--rn-m);font-size:.88rem}
.rn-cta-sell{background:linear-gradient(135deg,#eef2ff,#ecfdf5);border:1px solid var(--rn-b);border-radius:var(--rn-r);padding:1.5rem;text-align:center;margin:1.5rem 0}
.rn-fees table{width:100%}
.rn-ideas{columns:2;padding-left:1.2rem}
.rn-quick{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.rn-listing-row td:first-child{font-weight:600}
.rn-toast{position:fixed;right:20px;bottom:20px;z-index:9999;max-width:420px;box-shadow:0 10px 30px rgba(0,0,0,.18);cursor:pointer;animation:rnToast .25s ease-out}@keyframes rnToast{from{transform:translateY(12px);opacity:0}}
