/* Login + register, "Cinema" Dark Gold. Standalone: login.html / register.html no longer load style.css, dashboard.css, login-v2.css, register-v2.css.
   Rollback = restore the two html files from the backup (they link the old css again). */
:root {
  --gold: #E5AC45; --gb: #F4BF5C; --gl: #FFD785; --text: #F1F1F2; --t2: #A1A6AF; --mut: #6E7480;
  --err: #F5576C; --ok: #34D399;
  --metal: linear-gradient(180deg, #FFD785, #F4BF5C 35%, #E5AC45 65%, #C98B2F);
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; color-scheme: dark; }
body.ac { margin: 0; min-height: 100vh; min-height: 100dvh; background: #030304; color: var(--text);
  font: 14px/1.5 Inter, system-ui, -apple-system, "Segoe UI", sans-serif; display: flex; flex-direction: column; align-items: center; overflow-x: hidden; position: relative; }

/* background: glow + flowing route lines */
.ac-sky { position: fixed; inset: 0; pointer-events: none; }
.ac-sky::before { content: ""; position: absolute; left: 50%; top: -30%; width: 1400px; height: 1400px; transform: translateX(-50%); border-radius: 50%;
  background: radial-gradient(circle, rgba(229,172,69,.20), rgba(229,172,69,.05) 38%, transparent 62%); }
.ac-sky svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.ac-arc { fill: none; stroke: rgba(244,191,92,.35); stroke-width: 1; stroke-dasharray: 3 7; animation: ac-flow 14s linear infinite; }
.ac-arc.b { animation-duration: 20s; stroke: rgba(255,215,133,.22); }
@keyframes ac-flow { to { stroke-dashoffset: -200; } }
.ac-dot { fill: var(--gl); filter: drop-shadow(0 0 6px #F4BF5C); animation: ac-blink 3s ease-in-out infinite; }
.ac-dot.d2 { animation-delay: 1s; } .ac-dot.d3 { animation-delay: 2s; }
@keyframes ac-blink { 50% { opacity: .25; } }

/* top bar with the language menu */
.ac-top { position: relative; z-index: 5; width: 100%; display: flex; justify-content: flex-end; padding: max(16px, env(safe-area-inset-top)) 20px 0; }
.login-lang-switch { display: block; margin: 0; padding: 0; border: 0; background: none; }
.langm-btn { height: 38px; padding: 0 13px 0 12px; border-radius: 999px; border: 1px solid rgba(229,172,69,.32); background: rgba(255,255,255,.05);
  color: var(--text); font: 600 13px/1 Inter, sans-serif; }
.langm-btn:hover, .langm.is-open .langm-btn { border-color: rgba(244,191,92,.7); background: rgba(229,172,69,.10); }
.langm-btn:focus-visible { box-shadow: 0 0 0 3px rgba(229,172,69,.3); }
.langm-globe { color: var(--gb); }
.langm-list { top: calc(100% + 8px); bottom: auto; background: #101114; border-color: rgba(229,172,69,.25); transform: translateY(-6px); }
.langm-list [role="option"]:hover, .langm-list [role="option"]:focus-visible { background: rgba(255,255,255,.06); }
.langm-list [aria-selected="true"] { background: rgba(229,172,69,.12); }
.langm-list [aria-selected="true"] .langm-text b, .langm-tick { color: var(--gl); }
.langm-text small { color: var(--mut); }

/* brand */
.ac-hero { position: relative; z-index: 2; text-align: center; margin: clamp(8px, 4vh, 40px) 0 22px; padding: 0 20px; }
.ac-hero img { width: 84px; height: 84px; object-fit: contain; filter: drop-shadow(0 8px 30px rgba(229,172,69,.45)); }
.ac-brand { margin: 8px 0 2px; font: 900 30px/1 Cinzel, Georgia, serif; letter-spacing: .14em; }
.ac-brand i { font-style: normal; color: var(--gb); }
.ac-tag { margin: 0; color: var(--t2); letter-spacing: .2em; font-size: 11px; text-transform: uppercase; }

/* card */
.ac-card { position: relative; z-index: 2; width: min(420px, calc(100% - 28px)); padding: 8px; border-radius: 26px; background: rgba(18,19,22,.84);
  border: 1px solid rgba(229,172,69,.26); box-shadow: 0 40px 90px rgba(0,0,0,.65), 0 0 0 1px rgba(255,255,255,.03) inset; }
.ac-card::before { content: ""; position: absolute; inset: -1px; border-radius: 27px; padding: 1px; pointer-events: none;
  background: linear-gradient(160deg, rgba(255,215,133,.7), transparent 30%, transparent 70%, rgba(229,172,69,.4));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
.ac-seg { display: grid; grid-template-columns: 1fr 1fr; padding: 4px; border-radius: 18px; background: #0A0B0D; border: 1px solid rgba(255,255,255,.06); }
.ac-seg a { display: flex; align-items: center; justify-content: center; height: 42px; border-radius: 14px; color: var(--t2); font: 600 14px Inter, sans-serif; text-decoration: none; transition: .2s; }
.ac-seg a:hover { color: var(--gl); }
.ac-seg a.on { color: #17130D; background: var(--metal); box-shadow: 0 6px 18px rgba(229,172,69,.3); pointer-events: none; }
.ac-body { padding: 20px 14px 16px; }
.ac-h1 { margin: 0 0 4px; font-size: 22px; line-height: 1.2; letter-spacing: -.01em; font-weight: 700; }
.ac-sub { margin: 0 0 18px; color: var(--t2); }
.ac-form { display: grid; gap: 12px; }
.ac-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

/* floating-label fields (labels sit after the input; the placeholder is hidden until focus so the two never overlap) */
.ac-f { position: relative; }
.ac-f input { width: 100%; height: 54px; padding: 22px 14px 6px; border-radius: 14px; border: 1px solid rgba(255,255,255,.1); background: #0A0B0D; color: var(--text);
  font: 500 15px Inter, sans-serif; outline: none; transition: border-color .15s, box-shadow .15s; -webkit-appearance: none; appearance: none; }
.ac-f input::placeholder { color: transparent; transition: color .15s; }
.ac-f input:focus::placeholder { color: #5A606A; }
.ac-f label { position: absolute; left: 14px; top: 17px; max-width: calc(100% - 28px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--mut); font-size: 15px; pointer-events: none; transition: .15s; }
.ac-f input:focus + label, .ac-f input:not(:placeholder-shown) + label { top: 8px; font-size: 11px; color: var(--gb); font-weight: 600; letter-spacing: .03em; }
.ac-f input:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(229,172,69,.14); }
.ac-f input:-webkit-autofill { -webkit-text-fill-color: var(--text); box-shadow: 0 0 0 40px #0A0B0D inset; caret-color: var(--text); }
.ac-f input.is-invalid { border-color: var(--err); box-shadow: 0 0 0 3px rgba(245,87,108,.14); }
.ac-f.has-eye input { padding-right: 46px; }
.reg-eye { position: absolute; right: 5px; top: 8px; width: 38px; height: 38px; display: grid; place-items: center; border: 0; border-radius: 10px; background: none; color: var(--mut); cursor: pointer; }
.reg-eye:hover, .reg-eye.is-on { color: var(--gl); }
.reg-eye svg { width: 19px; height: 19px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.reg-eye:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(229,172,69,.3); }

.ac-btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 54px; border: 0; border-radius: 15px; background: var(--metal); color: #17130D; cursor: pointer;
  font: 700 16px Inter, sans-serif; box-shadow: 0 12px 30px rgba(229,172,69,.28), 0 1px 0 rgba(255,255,255,.4) inset; transition: filter .12s, transform .12s; }
.ac-btn:hover { filter: brightness(1.06); } .ac-btn:active { transform: translateY(1px); }
.ac-btn:disabled { opacity: .6; cursor: default; filter: none; }
.ac-btn svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }

.ac-msg { margin: 0; padding: 10px 12px; border-radius: 12px; font-weight: 500; }
.ac-msg.err, .ac-msg.is-error { color: #FFB3BD; background: rgba(245,87,108,.10); border: 1px solid rgba(245,87,108,.32); }
.ac-msg.is-ok { color: #9BEBCB; background: rgba(52,211,153,.10); border: 1px solid rgba(52,211,153,.30); }

/* register: e-mail code step (register.js toggles .is-code-step on the form) */
.reg-code { display: none; gap: 12px; }
.ac-form.is-code-step > .reg-fields, .ac-form.is-code-step > .reg-submit { display: none; }
.ac-form.is-code-step > .reg-code { display: grid; }
.reg-code h2 { margin: 0; font-size: 17px; }
.reg-code-hint { margin: 0; color: var(--t2); }
.reg-code-hint b { color: #fff; word-break: break-all; }
.reg-code .ac-f input { text-align: center; font: 700 26px ui-monospace, Consolas, monospace; letter-spacing: .5em; padding: 0 0 0 .5em; height: 60px; }
.reg-code .ac-f label { display: none; }
.reg-code .ac-f input::placeholder { color: #4A4F58; letter-spacing: .5em; }
.reg-code-links { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.reg-link { background: none; border: 0; padding: 4px 0; color: var(--t2); font: 600 13px Inter, sans-serif; cursor: pointer; }
.reg-link:hover:not(:disabled) { color: var(--gl); } .reg-link:disabled { color: var(--mut); cursor: default; }

.ac-foot { position: relative; z-index: 2; margin: 22px 0 max(20px, env(safe-area-inset-bottom)); display: flex; gap: 18px; color: var(--mut); font-size: 12.5px; }
.ac-foot a { color: var(--t2); text-decoration: none; } .ac-foot a:hover { color: var(--gl); }

@media (max-width: 480px) {
  .ac-hero img { width: 68px; height: 68px; } .ac-brand { font-size: 24px; }
  .ac-row { grid-template-columns: 1fr; } .ac-card { border-radius: 22px; }
  .ac-f input, .ac-btn { font-size: 16px; }
}
@media (max-height: 640px) { .ac-hero { margin-top: 0; } .ac-hero img { width: 56px; height: 56px; } }
@media (prefers-reduced-motion: reduce) { .ac-arc, .ac-dot { animation: none; } }
