/* Light-only theme bundle — see the note in portal.css. */
:root { color-scheme: light; }

/*
 * Sign-in page styling, lifted verbatim from xpanel's login template.
 *
 * Extracted from its inline <style> block into a real stylesheet so no Thymeleaf
 * template carries a style block or style attribute — the portal templates are audited
 * for exactly that. The rules themselves are unchanged from xpanel.
 */
body { margin: 0; }
    .xp-split { min-height: 100vh; }
    .xp-hero {
      background: radial-gradient(1200px 600px at 20% -10%, #3b3bd6 0%, transparent 55%),
                 linear-gradient(135deg, #10102b 0%, #1e1e5a 50%, #2547e0 100%);
      color: #fff; position: relative; overflow: hidden;
    }
    .xp-hero::before, .xp-hero::after {
      content: ""; position: absolute; border-radius: 50%; filter: blur(10px); opacity: .18; background: #7ee7ff;
    }
    .xp-hero::before { width: 340px; height: 340px; top: -90px; right: -80px; }
    .xp-hero::after  { width: 260px; height: 260px; bottom: -110px; left: -70px; background: #a78bfa; }
    .xp-grid { position: absolute; inset: 0; opacity: .12;
      background-image: linear-gradient(#fff 1px, transparent 1px), linear-gradient(90deg, #fff 1px, transparent 1px);
      background-size: 42px 42px; mask-image: radial-gradient(circle at 50% 40%, #000 40%, transparent 75%); }
    .xp-illus { position: relative; z-index: 2; width: 100%; max-width: 460px; height: auto; }
    .xp-float { animation: xpfloat 7s ease-in-out infinite; transform-origin: center; }
    @keyframes xpfloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
    .xp-led { animation: xpblink 2.2s ease-in-out infinite; }
    .xp-led:nth-child(2) { animation-delay: .5s; } .xp-led:nth-child(3) { animation-delay: 1s; }
    @keyframes xpblink { 0%,100% { opacity: 1; } 50% { opacity: .35; } }
    .xp-dash { stroke-dasharray: 6 8; animation: xpdash 1.2s linear infinite; }
    @keyframes xpdash { to { stroke-dashoffset: -28; } }
    .feat i { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center;
      background: rgba(255,255,255,.14); border-radius: 10px; }
    .xp-formwrap { width: 100%; }
    @media (min-width: 992px) { .xp-formwrap { width: 480px; } }
