:root{--nnfr-bg:#faf9f7;--nnfr-ink:#1c1c1e;--nnfr-mute:#6b6b70;--nnfr-line:#e6e3de;--nnfr-card:#fff;--nnfr-radius:18px}
.nnfr{font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--nnfr-bg);color:var(--nnfr-ink);max-width:1440px;margin:0 auto;padding:20px}
.nnfr-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.nnfr-head h1{font-size:clamp(24px,3.4vw,38px);margin:0;letter-spacing:-.02em}
.nnfr-sub{color:var(--nnfr-mute);margin:4px 0 0}
.nnfr-badge{font-size:12px;border:1px solid var(--nnfr-line);border-radius:999px;padding:6px 12px;background:#fff}
.nnfr-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.9fr);gap:18px;margin-top:16px}
.nnfr-stage{position:relative;background:#111;border-radius:var(--nnfr-radius);overflow:hidden;aspect-ratio:3/4;max-height:82vh}
@media(min-width:900px){.nnfr-stage{aspect-ratio:4/3}}
.nnfr-stage video,.nnfr-stage canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.nnfr-guide{position:absolute;top:3%;bottom:3%;left:50%;transform:translateX(-50%);width:min(44%,380px);border:2px dashed rgba(255,255,255,.55);border-radius:50%/38%;pointer-events:none}
.nnfr-status{position:absolute;left:12px;right:12px;bottom:64px;background:rgba(0,0,0,.62);color:#fff;border-radius:12px;padding:9px 12px;font-size:14px}
.nnfr-toolbar{position:absolute;left:0;right:0;bottom:0;display:flex;gap:8px;flex-wrap:wrap;padding:10px;background:linear-gradient(transparent,rgba(0,0,0,.55))}
.nnfr-btn,.nnfr-toolbar button,.nnfr-try{background:#fff;color:var(--nnfr-ink);border:1px solid var(--nnfr-line);border-radius:999px;padding:10px 16px;font-size:14px;cursor:pointer;min-height:44px}
.nnfr-btn.primary,.nnfr-toolbar button.primary{background:var(--nnfr-ink);color:#fff;border-color:var(--nnfr-ink)}
.nnfr-btn:focus-visible,button:focus-visible{outline:3px solid #7aa7ff;outline-offset:2px}
.nnfr-panel{background:var(--nnfr-card);border:1px solid var(--nnfr-line);border-radius:var(--nnfr-radius);padding:14px;max-height:82vh;overflow:auto}
.nnfr-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.nnfr-tab{border:1px solid var(--nnfr-line);background:#fff;border-radius:999px;padding:8px 12px;cursor:pointer;min-height:40px}
.nnfr-tab.is-on{background:var(--nnfr-ink);color:#fff}
.nnfr-filters{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.nnfr-filter{border:1px solid var(--nnfr-line);background:#f4f2ef;border-radius:999px;padding:6px 11px;cursor:pointer}
.nnfr-search{width:100%;padding:11px 12px;border:1px solid var(--nnfr-line);border-radius:12px;font-size:15px}
.nnfr-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.nnfr-card{border:1px solid var(--nnfr-line);border-radius:14px;overflow:hidden;background:#fff}
.nnfr-card.is-active{border-color:var(--nnfr-ink);box-shadow:0 0 0 1px var(--nnfr-ink)}
.nnfr-card img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.nnfr-card-body{padding:9px}
.nnfr-card-title{font-size:13px;font-weight:600;line-height:1.3}
.nnfr-card-meta{font-size:12px;color:var(--nnfr-mute);margin:3px 0}
.nnfr-card-note{font-size:11px;color:#8a6d1f;background:#fdf6dd;border-radius:8px;padding:4px 6px;margin:5px 0}
.nnfr-try{width:100%;padding:8px}
.nnfr-outfit{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:14px}
.nnfr-chip{border:1px solid var(--nnfr-line);background:#fff;border-radius:999px;padding:7px 11px;font-size:13px}
.nnfr-chip.is-empty{color:var(--nnfr-mute)}
.nnfr-chip button{border:0;background:none;font-size:15px;cursor:pointer}
.nnfr-total{font-weight:700}
.nnfr-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.nnfr-empty{color:var(--nnfr-mute);padding:16px;text-align:center;grid-column:1/-1}
.nnfr-consent{display:flex;gap:9px;align-items:flex-start;background:#fff;border:1px solid var(--nnfr-line);border-radius:14px;padding:12px;margin-top:14px;font-size:14px}
.nnfr-consent input{width:20px;height:20px;margin-top:2px}
.nnfr-saved-card{border:1px solid var(--nnfr-line);border-radius:12px;padding:10px;margin-bottom:8px;font-size:14px}
@media(max-width:899px){
  .nnfr-layout{grid-template-columns:1fr}
  .nnfr-stage{aspect-ratio:3/4.2;max-height:none}
  .nnfr-panel{max-height:none}
  .nnfr-grid{grid-template-columns:repeat(3,1fr)}
  .nnfr-card-title{font-size:11px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
