/* =====================================================================
   login.css — Pantalla d'accés moderna (JavaJan Online intranet)
   Estil coherent amb tasques_tecnics_v2: Tabler + variables --tblr-*,
   dark mode natiu (data-bs-theme), font Inter, targeta neta amb ombres suaus.
   Tot es basa en les variables de Tabler perquè s'adapti sol a clar/fosc.
   ===================================================================== */

:root {
    --lg-bg:          var(--tblr-body-bg);
    --lg-surface:     var(--tblr-bg-surface, #fff);
    --lg-border:      var(--tblr-border-color, #e6e7e9);
    --lg-ink:         var(--tblr-body-color, #1a2234);
    --lg-ink-muted:   var(--tblr-secondary-color, #667082);
    --lg-accent:      var(--tblr-primary, #206bc4);
    --lg-danger:      var(--tblr-danger, #d63939);
    --lg-radius:      16px;
    --lg-radius-sm:   10px;
    --lg-shadow:      0 1px 2px rgba(20,30,50,.06), 0 24px 60px -24px rgba(20,30,50,.28);
}

/* ---------- Fons amb un lleuger gradient (clar) ---------- */
.login-body {
    min-height: 100vh;
    margin: 0;
    display: grid;
    place-items: center;
    padding: 24px;
    color: var(--lg-ink);
    background:
        radial-gradient(1200px 600px at 15% -10%, color-mix(in srgb, var(--lg-accent) 12%, transparent), transparent 60%),
        radial-gradient(1000px 500px at 110% 110%, color-mix(in srgb, var(--lg-accent) 10%, transparent), transparent 55%),
        var(--lg-bg);
    font-family: var(--tblr-font-sans-serif);
}

/* En fosc, atenuem els halos perquè no cridin massa */
:root[data-bs-theme="dark"] .login-body {
    background:
        radial-gradient(1200px 600px at 15% -10%, color-mix(in srgb, var(--lg-accent) 22%, transparent), transparent 60%),
        radial-gradient(1000px 500px at 110% 110%, color-mix(in srgb, var(--lg-accent) 16%, transparent), transparent 55%),
        var(--lg-bg);
}

/* ---------- Contenidor + targeta ---------- */
.login-wrap {
    width: 100%;
    max-width: 420px;
}

.login-card {
    background: var(--lg-surface);
    border: 1px solid var(--lg-border);
    border-radius: var(--lg-radius);
    box-shadow: var(--lg-shadow);
    padding: 36px 32px 28px;
    animation: login-in .35s ease;
}

@keyframes login-in {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ---------- Marca ---------- */
.login-brand {
    display: flex;
    justify-content: center;
    margin-bottom: 20px;
}
.login-logo {
    height: 40px;
    width: auto;
    /* El logo és blanc sobre transparent: en tema clar el fem fosc perquè es vegi. */
    filter: brightness(0) saturate(100%);
    opacity: .85;
}
:root[data-bs-theme="dark"] .login-logo {
    filter: none;
    opacity: 1;
}

.login-title {
    text-align: center;
    font-size: 22px;
    font-weight: 650;
    margin: 0 0 4px;
    letter-spacing: -.01em;
}
.login-subtitle {
    text-align: center;
    color: var(--lg-ink-muted);
    font-size: 13.5px;
    margin: 0 0 24px;
}

/* ---------- Alerta d'error ---------- */
.login-alert {
    display: flex;
    align-items: center;
    gap: 8px;
    background: color-mix(in srgb, var(--lg-danger) 12%, var(--lg-surface));
    border: 1px solid color-mix(in srgb, var(--lg-danger) 35%, transparent);
    color: var(--lg-danger);
    border-radius: var(--lg-radius-sm);
    padding: 10px 12px;
    font-size: 13px;
    margin-bottom: 18px;
}
.login-alert i { font-size: 18px; }

/* ---------- Formulari ---------- */
.login-label {
    display: block;
    font-size: 12.5px;
    font-weight: 550;
    color: var(--lg-ink-muted);
    margin: 0 0 6px;
}

.login-field {
    position: relative;
    margin-bottom: 16px;
}
.login-field-icon {
    position: absolute;
    left: 13px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 18px;
    color: var(--lg-ink-muted);
    pointer-events: none;
}
.login-input {
    width: 100%;
    box-sizing: border-box;
    height: 46px;
    padding: 0 14px 0 40px;
    font-size: 14.5px;
    color: var(--lg-ink);
    background: var(--tblr-bg-surface-secondary, var(--lg-surface));
    border: 1px solid var(--lg-border);
    border-radius: var(--lg-radius-sm);
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.login-input::placeholder { color: var(--lg-ink-muted); opacity: .7; }
.login-input:focus {
    border-color: var(--lg-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--lg-accent) 22%, transparent);
}

/* Botó ull (mostrar/amagar contrasenya) */
.login-eye {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: 0;
    cursor: pointer;
    padding: 8px;
    color: var(--lg-ink-muted);
    line-height: 0;
    border-radius: 8px;
}
.login-eye:hover { color: var(--lg-ink); }
.login-eye i { font-size: 18px; }

/* Recorda'm */
.login-remember {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13.5px;
    color: var(--lg-ink);
    margin: 4px 0 22px;
    cursor: pointer;
    user-select: none;
}
.login-remember input {
    width: 17px;
    height: 17px;
    accent-color: var(--lg-accent);
    cursor: pointer;
}

/* Botó Entrar */
.login-submit {
    width: 100%;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 600;
    color: #fff;
    background: var(--lg-accent);
    border: 0;
    border-radius: var(--lg-radius-sm);
    cursor: pointer;
    transition: filter .15s ease, transform .05s ease;
}
.login-submit:hover { filter: brightness(1.06); }
.login-submit:active { transform: translateY(1px); }
.login-submit i { font-size: 19px; }

/* Peu */
.login-footer {
    text-align: center;
    color: var(--lg-ink-muted);
    font-size: 11.5px;
    line-height: 1.5;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid var(--lg-border);
}

/* ---------- Toggle de tema ---------- */
.login-theme-toggle {
    position: fixed;
    top: 18px;
    right: 18px;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    background: var(--lg-surface);
    border: 1px solid var(--lg-border);
    border-radius: 12px;
    color: var(--lg-ink);
    cursor: pointer;
    box-shadow: var(--lg-shadow);
    transition: filter .15s ease;
}
.login-theme-toggle:hover { filter: brightness(1.03); }

/* Sol/lluna segons tema (com a tasques_tecnics_v2) */
.login-theme-toggle .ic-sun  { display: none; }
.login-theme-toggle .ic-moon { display: inline-block; }
:root[data-bs-theme="dark"] .login-theme-toggle .ic-moon { display: none; }
:root[data-bs-theme="dark"] .login-theme-toggle .ic-sun  { display: inline-block; }

/* ---------- Mòbil ---------- */
@media (max-width: 480px) {
    .login-card { padding: 28px 20px 22px; }
    .login-title { font-size: 20px; }
}
