/* Import dei font da Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');

/* Applica font principale */
body {
    font-family: "Roboto Slab", serif;
}

button:disabled,
.btn:disabled,
fieldset:disabled .btn {
    background-color: #e0e0e0 !important;
    /* grigio chiaro */
    border-color: #d6d6d6 !important;
    color: #6c757d !important;
    /* testo grigio */
    opacity: 1 !important;
    /* per evitare il fading trasparente */
    cursor: not-allowed;
}

.nav-link:hover {
    color: #dc3535 !important;
}

.selected-nav-link {
    box-shadow: inset 0 -3px 0 0 #dc3535;
    color: #dc3535 !important;
    font-weight: 650;
    transition: box-shadow 0.2s ease;
}

.dropdown-item:active {
    background-color: #dc3535 !important;
    color: white !important;
}

.main_bg {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url('https://images.unsplash.com/photo-1481627834876-b7833e8f5570?q=80&w=2128&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D');
    background-size: cover;
    background-position: center;
    filter: brightness(60%) saturate(140%) blur(2px);
    z-index: 0;
}

:root {
    --primary-red: #dc3535;
    --primary-red-hover: color-mix(in srgb, var(--primary-red) 85%, black);
    --primary-red-border-hover: color-mix(in srgb, var(--primary-red) 75%, black);
}

.btn-primary {
    background-color: var(--primary-red);
    border-color: var(--primary-red);
}

.btn-primary:hover {
    background-color: var(--primary-red-hover);
    border-color: var(--primary-red-border-hover);
}

.bg-primary {
    background-color: var(--primary-red) !important;
    color: white;
}

.text-primary {
    color: var(--primary-red) !important;
}

.libro-card-link .card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.libro-card-link:hover .card {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
}

/* Assicura che il testo lungo (come gli URL) vada a capo correttamente nella descrizione della card */
.libro-card-link .card-body .card-text.flex-grow-1 {
    /* Manteniamo questo per il testo normale nel paragrafo */
    overflow-wrap: break-word;
    word-wrap: break-word;
    /* Fallback */
}

/* Applica regole più specifiche per i link dentro la descrizione */
.libro-card-link .card-body .card-text.flex-grow-1 a {
    overflow-wrap: break-word;
    /* Prova anche qui */
    word-break: break-all;
    /* Forza l'interruzione per gli URL */
    /* Opzionale: se il link stesso causa problemi di display */
    /* display: inline-block; */
    /* max-width: 100%; */
}

/* Fissa dimensioni per le colonne e le card */
.col-lg-3.col-md-4.col-sm-6.pb-3.pt-3.d-flex.align-items-stretch {
    width: 25%;
    /* Forza la larghezza per desktop */
}

@media (max-width: 991px) {
    .col-lg-3.col-md-4.col-sm-6.pb-3.pt-3.d-flex.align-items-stretch {
        width: 33.33%;
        /* Forza la larghezza per tablet */
    }
}

@media (max-width: 767px) {
    .col-lg-3.col-md-4.col-sm-6.pb-3.pt-3.d-flex.align-items-stretch {
        width: 50%;
        /* Forza la larghezza per mobile */
    }
}

/* Password Strength Indicator Styles */
.password-strength-container {
    margin-top: 0.5rem;
}

.password-strength-bars {
    display: flex;
    gap: 3px;
    margin-bottom: 0.5rem;
    height: 5px;
    margin-top: 8px;
}

.strength-bar {
    height: 5px;
    flex-grow: 1;
    background-color: #e9ecef;
    border-radius: 2px;
    transition: background-color 0.3s ease, height 0.3s ease;
}

.password-strength-text {
    font-size: 0.875rem;
    margin-bottom: 0;
    margin-top: 5px;
    transition: color 0.3s ease;
}

.password-strength-text small {
    font-size: 0.75rem;
    opacity: 0.9;
    display: block;
    margin-top: 3px;
}

/* Password match feedback */
.password-match-feedback {
    font-size: 0.875rem;
    margin-top: 5px;
    margin-bottom: 0;
    transition: color 0.3s ease;
}

/* Email feedback */
.email-feedback {
    font-size: 0.875rem;
    margin-top: 5px;
    margin-bottom: 0;
    transition: color 0.3s ease;
}

/* Password history feedback */
.password-history-feedback {
    font-size: 0.875rem;
    margin-top: 5px;
    margin-bottom: 0;
    transition: color 0.3s ease;
}

/* Code verification feedback */
.code-verification-feedback {
    font-size: 0.875rem;
    margin-top: 5px;
    margin-bottom: 0;
    transition: color 0.3s ease;
}

/* Password strength colors */
.text-danger {
    color: #dc3545 !important;
}

.text-warning {
    color: #ffc107 !important;
}

.text-info {
    color: #0dcaf0 !important;
}

.text-success {
    color: #198754 !important;
}

.bg-danger {
    background-color: #dc3545 !important;
}

.bg-warning {
    background-color: #ffc107 !important;
}

.bg-info {
    background-color: #0dcaf0 !important;
}

.bg-success {
    background-color: #198754 !important;
}