/* Piratasat — fundo colorido + cartão glass que combina */
body.piratasat-login {
    min-height: 100vh;
    position: relative;
    overflow-x: hidden;
    background-color: #0a0820 !important;
    background-image:
        linear-gradient(125deg, rgba(8,12,40,.35), rgba(20,8,48,.25)),
        url("/js/timer/background.jpg?v=3") !important;
    background-position: center center !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    background-attachment: fixed !important;
}

/* Anular imagem antiga da produsat injectada em .row / .bg-gradient-primary */
body.piratasat-login .row,
body.piratasat-login .bg-gradient-primary,
body.piratasat-login .container,
body.piratasat-login .card,
body.piratasat-login .card-body {
    background-image: none !important;
}

body.piratasat-login::before,
body.piratasat-login::after {
    content: "";
    position: fixed;
    inset: -20%;
    pointer-events: none;
    z-index: 0;
}

body.piratasat-login::before {
    background:
        radial-gradient(ellipse 50% 40% at 15% 20%, rgba(0, 229, 255, .35), transparent 55%),
        radial-gradient(ellipse 45% 40% at 85% 25%, rgba(255, 45, 149, .32), transparent 55%),
        radial-gradient(ellipse 55% 45% at 50% 90%, rgba(255, 184, 0, .28), transparent 60%),
        radial-gradient(ellipse 40% 35% at 70% 70%, rgba(120, 80, 255, .25), transparent 55%);
    animation: pirataGlow 14s ease-in-out infinite alternate;
    mix-blend-mode: screen;
}

body.piratasat-login::after {
    background: repeating-linear-gradient(
        -28deg,
        transparent 0,
        transparent 48px,
        rgba(0, 255, 220, .04) 48px,
        rgba(255, 60, 160, .05) 52px
    );
    animation: pirataSweep 18s linear infinite;
    opacity: .9;
}

@keyframes pirataGlow {
    0%   { transform: translate3d(-2%, -1%, 0) scale(1); filter: hue-rotate(0deg); }
    50%  { transform: translate3d(2%, 2%, 0) scale(1.08); filter: hue-rotate(25deg); }
    100% { transform: translate3d(1%, -2%, 0) scale(1.04); filter: hue-rotate(-15deg); }
}

@keyframes pirataSweep {
    0%   { transform: translate3d(0, 0, 0); }
    100% { transform: translate3d(60px, -40px, 0); }
}

body.piratasat-login .container {
    position: relative;
    z-index: 1;
}

/* Cartão glass — escuro + translúcido, liga ao neon */
body.piratasat-login .card {
    background: rgba(12, 10, 36, .55) !important;
    backdrop-filter: blur(18px) saturate(1.35);
    -webkit-backdrop-filter: blur(18px) saturate(1.35);
    border-radius: 1.25rem !important;
    border: 1px solid rgba(255, 255, 255, .18) !important;
    box-shadow:
        0 24px 60px rgba(5, 2, 30, .55),
        0 0 0 1px rgba(0, 229, 255, .08),
        inset 0 1px 0 rgba(255, 255, 255, .12);
    animation: pirataCardIn .7s ease-out both;
    color: #f0eef8 !important;
}

body.piratasat-login .card-body {
    background: transparent !important;
}

body.piratasat-login .card h1,
body.piratasat-login .card .text-gray-900,
body.piratasat-login .card .text-center {
    color: #f5f3ff !important;
}

body.piratasat-login .card .img-thumbnail {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

@keyframes pirataCardIn {
    from { opacity: 0; transform: translateY(16px) scale(.98); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* Tabs */
body.piratasat-login .nav-tabs {
    border-bottom: 1px solid rgba(255, 255, 255, .18);
}

body.piratasat-login .nav-tabs .nav-link {
    color: rgba(220, 210, 255, .75) !important;
    border: none !important;
    border-radius: .65rem .65rem 0 0 !important;
    transition: color .2s, background .2s;
}

body.piratasat-login .nav-tabs .nav-link:hover {
    color: #fff !important;
    background: rgba(255, 255, 255, .06) !important;
}

body.piratasat-login .nav-tabs .nav-link.active {
    font-weight: 700;
    color: #fff !important;
    background: rgba(120, 80, 255, .35) !important;
    box-shadow: inset 0 -2px 0 #00e5ff;
}

/* Inputs — vidro em vez de cinza */
body.piratasat-login .form-control,
body.piratasat-login .form-control-user {
    background: rgba(255, 255, 255, .08) !important;
    border: 1px solid rgba(255, 255, 255, .22) !important;
    color: #fff !important;
    border-radius: 2rem !important;
    transition: border-color .2s, box-shadow .2s, background .2s;
}

body.piratasat-login .form-control::placeholder,
body.piratasat-login .form-control-user::placeholder {
    color: rgba(230, 225, 255, .55) !important;
}

body.piratasat-login .form-control:focus,
body.piratasat-login .form-control-user:focus {
    background: rgba(255, 255, 255, .14) !important;
    border-color: rgba(0, 229, 255, .65) !important;
    box-shadow: 0 0 0 .2rem rgba(0, 229, 255, .2) !important;
    color: #fff !important;
}

/* Botão login */
body.piratasat-login .btn-primary {
    background: linear-gradient(135deg, #4f46e5, #06b6d4) !important;
    border: none !important;
    box-shadow: 0 8px 24px rgba(6, 182, 212, .35);
    transition: transform .15s, box-shadow .15s, filter .15s;
}

body.piratasat-login .btn-primary:hover {
    filter: brightness(1.08);
    transform: translateY(-1px);
    box-shadow: 0 12px 28px rgba(6, 182, 212, .45);
}

/* Links e botão secundário */
body.piratasat-login a {
    color: #7dd3fc !important;
}

body.piratasat-login a:hover {
    color: #e0f2fe !important;
}

body.piratasat-login .btn-outline-primary,
body.piratasat-login a.btn,
body.piratasat-login .btn-user.btn-block + a,
body.piratasat-login a[href*="oscam-register"],
body.piratasat-login .text-center > a.btn,
body.piratasat-login a.small,
body.piratasat-login .btn-outline-light {
    color: #e8e4ff !important;
}

/* Botão registo / outline no rodapé */
body.piratasat-login .card a.btn,
body.piratasat-login .card .btn:not(.btn-primary) {
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, .35) !important;
    color: #f0eef8 !important;
    border-radius: 2rem !important;
}

body.piratasat-login .card a.btn:hover,
body.piratasat-login .card .btn:not(.btn-primary):hover {
    background: rgba(255, 255, 255, .1) !important;
    border-color: rgba(0, 229, 255, .5) !important;
    color: #fff !important;
}

body.piratasat-login hr {
    border-top-color: rgba(255, 255, 255, .15) !important;
}

@media (prefers-reduced-motion: reduce) {
    body.piratasat-login::before,
    body.piratasat-login::after,
    body.piratasat-login .card {
        animation: none !important;
    }
}
