/* ctauth.css — the copy-trade pages' sign-in window (ctauth.js; round 6 (e), the owner: «حالت شیشه‌ای روی صفحه»).
   Only the four copy-trade pages load it. The page stays in view behind a blurred, tinted glass; the card is frosted.
   Colours are copytrade.css's tokens (--g-*), light and dark. Text on the card keeps ≥ 4.5:1 even over the darkest
   (light theme) or brightest (dark theme) page behind the glass: hence --g-ink-2 for the small text, the deeper teal
   (--g-teal-ink) under white button text, and a field border of ≥ 3:1. Above everything (1000): the header (60), the
   page's dialogs (≤ 98) and the Telegram card (46). */
/* The page does not scroll while it is open. Only body is locked: its overflow then passes to the viewport, so the sticky
   header and the copy-trade sidebar stay where they were behind the glass (with html locked too, body became their
   scroll container and both jumped to the document's top — the review of round 6). */
html.ca-on body { overflow:hidden; }
.ca-root {
  --ca-field-line:#7C8A9C; --ca-err:#B91C1C; --ca-btn-ink:#FFFFFF;
  position:fixed; inset:0; z-index:1000; display:flex; overflow-y:auto; overscroll-behavior:contain;
  padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
  box-sizing:border-box;
}
:root[data-theme="dark"] .ca-root { --ca-field-line:#5C6E70; --ca-err:#FCA5A5; --ca-btn-ink:#0B1314; }
.ca-root[hidden] { display:none; }
.ca-glass {
  position:fixed; inset:0; background:rgba(15,27,45,.30);
  -webkit-backdrop-filter:blur(12px) saturate(140%); backdrop-filter:blur(12px) saturate(140%);
}
:root[data-theme="dark"] .ca-glass { background:rgba(0,0,0,.45); }
/* margin:auto centres the card while there is room and lets it scroll from its top when there is not (a phone's
   keyboard, 200 % zoom, 320 px). */
.ca-card {
  position:relative; margin:auto; width:min(420px, 100%); box-sizing:border-box; border-radius:20px; padding:24px 22px 12px;
  background:rgba(255,255,255,.90); -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,.55); box-shadow:var(--g-pop); color:var(--g-ink);
  font-family:'Vazirmatn','IRANSans',Tahoma,sans-serif; direction:rtl; text-align:start; -webkit-font-smoothing:antialiased;
}
:root[data-theme="dark"] .ca-card { background:rgba(17,28,29,.88); border-color:rgba(255,255,255,.10); }
.ca-brand { margin:0 0 4px; display:flex; align-items:center; gap:8px; font-size:13px; font-weight:800; color:var(--g-ink); }
.ca-mark { width:10px; height:10px; border-radius:50%; background:var(--g-teal); box-shadow:0 0 0 4px var(--g-teal-soft); }
.ca-card h2 { margin:0 0 6px; font-size:20px; line-height:1.6; font-weight:800; color:var(--g-ink); }
.ca-card h2:focus { outline:none; }
#caSub { margin:0 0 16px; font-size:13.5px; line-height:1.9; color:var(--g-ink-2); }
.ca-card[data-step="name"] #caSub { display:none; }      /* signed in already: «نام شما» alone */
.ca-why { display:block; margin-bottom:2px; color:var(--g-ink); font-weight:800; }
.ca-why[hidden] { display:none; }
.ca-step { display:flex; flex-direction:column; gap:8px; margin:0; }
.ca-step[hidden] { display:none; }
.ca-label { font-size:13.5px; font-weight:700; line-height:1.8; color:var(--g-ink); }
/* 16 px: no zoom on iOS; Latin digits left to right. */
.ca-input {
  width:100%; min-height:48px; margin:0; padding:0 14px; box-sizing:border-box; border-radius:12px;
  border:1px solid var(--ca-field-line); background:var(--g-card); color:var(--g-ink);
  font:inherit; font-size:16px; font-weight:700; letter-spacing:.6px; direction:ltr; text-align:left;
}
:root[data-theme="dark"] .ca-input { color-scheme:dark; }
.ca-input::placeholder { color:var(--g-ink-2); font-weight:500; opacity:1; }
.ca-input:focus { border-color:var(--g-teal-ink); }
.ca-input[aria-invalid="true"] { border-color:var(--ca-err); }
.ca-input[readonly] { background:var(--g-flat-soft); }
.ca-code { font-size:20px; letter-spacing:6px; text-align:center; }
.ca-name { direction:rtl; text-align:start; letter-spacing:0; }
.ca-btn {
  min-height:48px; margin:0; padding:0 18px; border:0; border-radius:12px; background:var(--g-teal-ink); color:var(--ca-btn-ink);
  font:inherit; font-size:15px; font-weight:800; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:8px;
}
.ca-btn:hover { filter:brightness(1.06); }
.ca-btn:disabled { background:var(--g-flat-soft); color:var(--g-ink-2); cursor:not-allowed; filter:none; }
.ca-btn.ca-ghost { background:none; border:1px solid var(--ca-field-line); color:var(--g-ink); }
.ca-row { display:flex; gap:8px; }
.ca-row .ca-btn { flex:1 1 0; }
.ca-link {
  min-height:44px; margin:0; padding:0 4px; border:0; background:none; color:var(--g-ink); cursor:pointer;
  font:inherit; font-size:13.5px; font-weight:700; text-decoration:underline; text-decoration-color:var(--g-teal);
  text-underline-offset:4px; text-decoration-thickness:2px;
}
.ca-link:disabled { color:var(--g-ink-2); cursor:not-allowed; text-decoration-color:var(--ca-field-line); }
.ca-link[hidden] { display:none; }
.ca-sent { display:flex; align-items:center; justify-content:space-between; gap:4px 8px; flex-wrap:wrap; }
.ca-sent p { margin:0; font-size:13.5px; line-height:1.8; color:var(--g-ink-2); }
.ca-sent bdi { color:var(--g-ink); font-weight:800; letter-spacing:.4px; }
.ca-resend { margin:0; min-height:44px; display:flex; align-items:center; font-size:13px; color:var(--g-ink-2); }
.ca-resend [hidden] { display:none; }
.ca-err { margin:10px 0 0; font-size:13px; font-weight:700; line-height:1.8; color:var(--ca-err); }
.ca-err:empty { display:none; }
.ca-foot { margin:12px 0 0; padding-top:4px; border-top:1px solid var(--g-line); display:flex; justify-content:center; }
.ca-home { display:inline-flex; align-items:center; min-height:44px; padding:0 6px; font-size:13px; font-weight:600; color:var(--g-ink-2); text-decoration:none; }
.ca-home:hover { color:var(--g-ink); text-decoration:underline; }
.ca-card :focus-visible { outline:3px solid var(--g-teal); outline-offset:2px; }
.ca-card .ca-input:focus-visible { outline-offset:1px; }
.ca-sr { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
@media (max-width:380px) {
  .ca-card { padding:20px 16px 10px; }
  .ca-card h2 { font-size:18px; }
}
/* A short fade and scale in; none under reduced motion. */
@media (prefers-reduced-motion:no-preference) {
  .ca-root.is-in .ca-glass { animation:ca-fade .16s ease-out; }
  .ca-root.is-in .ca-card { animation:ca-in .16s ease-out; }
}
@keyframes ca-fade { from { opacity:0; } to { opacity:1; } }
@keyframes ca-in { from { opacity:0; transform:scale(.97); } to { opacity:1; transform:none; } }
/* No glass: the page's own scrim and an opaque card (an old browser, or reduced transparency asked for), in both themes
   (the :root[data-theme] twins outweigh the dark theme's own glass and card rules above). */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
  .ca-glass, :root[data-theme] .ca-glass { background:var(--g-scrim); }
  .ca-card, :root[data-theme] .ca-card { background:var(--g-card); }
}
@media (prefers-reduced-transparency:reduce) {
  .ca-glass, :root[data-theme] .ca-glass { background:var(--g-scrim); -webkit-backdrop-filter:none; backdrop-filter:none; }
  .ca-card, :root[data-theme] .ca-card { background:var(--g-card); -webkit-backdrop-filter:none; backdrop-filter:none; }
}
@media (forced-colors:active) {
  .ca-card, :root[data-theme] .ca-card { border:1px solid CanvasText; background:Canvas; }
  .ca-btn { border:1px solid ButtonText; }
}
/* After a sign-in the tapped «کپی» opens the copy popup as «وارد شدید.» shows. On phones that popup is a bottom sheet
   (copybasket.css, ≤ 760 px) and the toast, lifted over it, sat on its main button: while a popup is open there, the toast
   is shown at the top instead (the review of round 6). */
@media (max-width:760px) {
  body.cb-locked .ct-toast { top:max(12px, env(safe-area-inset-top)); bottom:auto; transform:translate(-50%, -10px); }
  body.cb-locked .ct-toast.on { transform:translate(-50%, 0); }
}
/* source-card-en (the owner, 30 October 2026: «وقتی سایت رو انگلیسی میکنم …»): the window made in English (ctauth.js
   build, data-lang="en") reads left to right; the Persian one as before. */
.ca-root[data-lang="en"] .ca-card, .ca-root[data-lang="en"] .ca-name { direction:ltr; }
