/* ============================================================
   faceswap.css — страница «Замена лица» (/faceswap)
   ============================================================ */
body[data-page="faceswap"] .studio-empty,
body[data-page="faceswap"] .composer-wrap,
body[data-page="faceswap"] .settings-panel { display: none !important; }

.fs-root { width: 100%; max-width: 760px; margin: 0 auto; padding: 8px 0 32px; position: relative; }
.fs-lead { color: var(--text-2, #c7c7cf); font-size: 14px; line-height: 1.5; text-align: center; margin: 0 0 22px; }

.fs-zones { display: flex; align-items: center; gap: 14px; }
.fs-zone { flex: 1; position: relative; aspect-ratio: 3/4; border: 1.5px dashed var(--line, rgba(255,255,255,.16)); border-radius: 16px; background: rgba(255,255,255,.03); cursor: pointer; overflow: hidden; transition: border-color .15s, background .15s; display: flex; align-items: center; justify-content: center; }
.fs-zone:hover, .fs-zone.drag { border-color: rgba(228,244,130,.55); background: rgba(228,244,130,.05); }
.fs-zone.has { border-style: solid; }
.fs-thumb { width: 100%; height: 100%; object-fit: cover; }
.fs-ph { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; padding: 18px; color: var(--text-2, #c7c7cf); }
.fs-ph-ic { width: 44px; height: 44px; border-radius: 12px; background: rgba(255,255,255,.05); display: flex; align-items: center; justify-content: center; color: var(--accent, #E4F482); }
.fs-ph-ic svg { width: 22px; height: 22px; }
.fs-ph b { font-size: 14px; color: var(--text, #fff); }
.fs-ph span { font-size: 12px; }
.fs-x { position: absolute; top: 8px; right: 8px; width: 26px; height: 26px; border-radius: 50%; border: 0; background: rgba(10,10,14,.7); color: #fff; font-size: 18px; line-height: 1; cursor: pointer; }
.fs-arrow { flex: none; width: 40px; height: 40px; border-radius: 50%; background: #ffffff; color: var(--accent-ink, #1a1f05); display: flex; align-items: center; justify-content: center; }
.fs-arrow svg { width: 22px; height: 22px; }

.fs-go-row { display: flex; justify-content: center; margin-top: 22px; }
.fs-go, .fs-rbtn.primary { display: inline-flex; align-items: center; gap: 9px; background: #ffffff; color: var(--accent-ink, #1a1f05); border: 0; border-radius: 14px; padding: 14px 26px; font-family: inherit; font-weight: 700; font-size: 15px; cursor: pointer; }
.fs-go:hover { filter: brightness(1.05); }
.fs-go:disabled { opacity: .6; cursor: default; }
.fs-go svg, .fs-rbtn svg { width: 18px; height: 18px; }
.fs-cost { display: inline-flex; align-items: center; gap: 5px; margin-left: 6px; padding: 3px 10px; border-radius: 9px; background: rgba(0,0,0,.14); font-size: 13px; font-weight: 800; }
.fs-coin { width: 14px; height: 14px; border-radius: 50%; flex: 0 0 auto; display: inline-block;
  background: linear-gradient(160deg, #f0d97a, #c79a2e); box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.35); }

.fs-err { color: #ff8da3; font-size: 13.5px; text-align: center; margin-top: 14px; }

.fs-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; background: rgba(10,10,14,.66); backdrop-filter: blur(2px); border-radius: 16px; color: #fff; font-size: 14px; }
.fs-spin { width: 34px; height: 34px; border: 3px solid rgba(255,255,255,.2); border-top-color: var(--accent, #E4F482); border-radius: 50%; animation: fs-spin .8s linear infinite; }
@keyframes fs-spin { to { transform: rotate(360deg); } }

.fs-result { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.fs-result img { max-width: 100%; max-height: 66vh; border-radius: 14px; }
.fs-ractions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.fs-rbtn { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; background: rgba(255,255,255,.05); color: var(--text, #fff); border: 1px solid var(--line, rgba(255,255,255,.1)); border-radius: 12px; padding: 12px 18px; font-family: inherit; font-weight: 600; font-size: 14px; cursor: pointer; }
.fs-rbtn:hover { background: rgba(255,255,255,.09); }
.fs-rbtn.primary { border: 0; }

@media (max-width: 600px) { .fs-zones { gap: 8px; } .fs-arrow { width: 32px; height: 32px; } }
