body { font-family: arial; text-align: center; padding: 10px; }
p { font-size: 1.2em; }
.logo-container {
    display: flex;
    align-items: center;   /* aligne verticalement */
    gap: 20px;             /* espace entre les logos */
}
.logo-khmerica {
    height: 60px;          /* ajuste la taille */
}
.logo-sosoro {
    height: 60px;          /* même hauteur pour alignement */
    fill: #000;            /* couleur du logo si besoin */
}
#welcome {
    font-size: 2.0em;
    font-weight: bold;
    margin-bottom: 10px;
}
#site-version {
    font-size: 0.5em;
    color: gray;
}
.search-container {
    display: flex;
    align-items: stretch;   /* force les enfants à avoir la même hauteur */
    width: 100%;
    max-width: 400px;
    margin: 2px auto;
}
.search-container:focus-within .search-button {
    box-shadow: 0 0 5px rgba(0, 123, 255, 0.5);
    border-color: #007bff;
}
.search-container:focus-within .search-input {
    box-shadow: 0 0 5px rgba(0, 123, 255, 0.5);
    border-color: #007bff;
}
.search-input {
    flex: 1;
    padding: 10px 12px;
    border: 1px solid #ccc;
    border-right: none;
    border-radius: 25px 0 0 25px ;
    font-size: 16px;
    outline: none;
    transition: box-shadow 0.3s ease;
}
.search-input:focus {
    box-shadow: 0 0 5px rgba(0, 123, 255, 0.5);
    border-color: #007bff;
}
.search-button {
    display: flex;
    background-color: white;
    border: 1px solid #ccc;
    border-left: none;
    padding: 10px;
    border-radius: 0 25px 25px 0;
    cursor: pointer;
    align-items: center;
    justify-content: center;
}
.search-icon {
    width: 20px;
    height: 20px;
}
.book-list-box {
    display:inline-block;
    border: 1px solid #ccc;          /* bordure grise légère */
    border-radius: 8px;              /* coins arrondis */
    padding: 12px;                   /* espace intérieur */
    background-color: #f9f9f9;       /* fond légèrement gris */
}
.book-list-book-title {
    font-size: 1.1em;
    font-weight: medium;
    text-align: left;
    margin-top: 5px;
}
#apropos {
    float: right;
    font-size: 0.8em;
    color: orange;
}
.apropos-titre {
    margin-bottom: 0.8em;
    line-height: 1.6;
    font-size: 1.4em;
    font-weight: bold;
}
.apropos-titre-p {
    margin-top: 0.8em;
    margin-bottom: 0.8em;
    line-height: 1.7;
    font-weight: bold;
    text-align: left; /* ? corrige le centrage */
    color: blue;
    font-size: 1.1em;
    font-weight: bold;
}
.apropos-p {
    text-indent: 1.5em;
    margin-top: 0.8em;
    margin-bottom: 0.8em;
    line-height: 1.6;
    text-align: justify; /* optionnel pour mise en page élégante */
}
.apropos-foot-note {
    margin-top: 0.8em;
    font-size: 0.8em;
    font-weight: bold;
    text-align: left; /* ? corrige le centrage */
}
.item-found-box {
    border: 1px solid #ccc;          /* bordure grise légère */
    border-radius: 8px;              /* coins arrondis */
    padding: 12px;                   /* espace intérieur */
    margin: 10px 0;                  /* espace entre les cadres */
    background-color: #f9f9f9;       /* fond légèrement gris */
}
.item-found-box:hover {
    transform: scale(1.02);          /* léger zoom au survol */
    border-color: #999;              /* bordure un peu plus foncée */
}
.item-found-header {
    margin-bottom: 6px;
    text-align: left;   /* force l’alignement à gauche */
}
.item-found-book-title {
    display: inline; /* permet le retour à la ligne naturel */
    font-size: 1.1em;
    font-weight: bold;
    color: black;
    text-decoration: none;
}
a.item-found-book-title {
    text-decoration: none;   /* pas de soulignement par défaut */
    color: black;
}
a.item-found-book-title:hover {
    text-decoration: underline;  /* soulignement quand la souris passe dessus */
}
.item-found-page-number {
    display: inline;
    font-size: 0.8em;
    color: #555;
    margin-left: 2px;
}
.item-found-newspaper-name {
    display: inline; /* permet le retour à la ligne naturel */
    font-size: 1.1em;
    font-weight: bold;
    color: blue;
    font-style: italic;
    text-decoration: none;
}
a.item-found-newspaper-name {
    text-decoration: none;   /* pas de soulignement par défaut */
    color: blue;
    font-style: italic;
}
a.item-found-newspaper-name:hover {
    text-decoration: underline;  /* soulignement quand la souris passe dessus */
}
.item-found-book-info::before {
    content: "";
    display: inline-block;
    width: 18px;
    height: 18px;
    background-image: url("/static/images/info_livre.png");
    background-size: contain;
    background-repeat: no-repeat;
    margin-right: 6px;
    vertical-align: middle;
    position: relative;
    top: -1px; /* décale vers le haut */
}
.item-found-book-info {
    display: block; /* force à aller à la ligne */
    font-size: 0.9em;
    font-weight: medium;
    color: black;
    margin-top: 2px;
    text-align: left;   /* force aussi à gauche */
}
a.item-found-book-info {
    text-decoration: none;   /* pas de soulignement par défaut */
    color: inherit;          /* garde la couleur du texte parent */
}
a.item-found-book-info:hover {
    text-decoration: underline;  /* soulignement quand la souris passe dessus */
}
.item-found-snippet {
    text-align: left;
    margin-top: 10px;
    line-height: 1.5;
    color: #333;
    text-overflow: ellipsis;     /* affiche "..." à la fin */
    max-width: 100%;             /* limite la largeur (à adapter si besoin) */
}
mark {
    background-color: yellow; /* couleur du surlignage */
    padding: 2px;
    border-radius: 3px;
}
#page-livre-ligne1 {
    margin-bottom: 6px;
}
#page-livre-ligne1-titre {
    display: inline; /* permet le retour à la ligne naturel */
    font-size: 1.5em;
    font-weight: bold;
    color: black;
}
#page-livre-ligne1-numpage {
    display: inline;
    font-size: 1.2em;
    color: #555;
    margin-left: 2px;
}
#container-page-livre-image {
    position: relative;
    overflow: hidden;   /* masque les débordements */
    touch-action: none; /* nécessaire pour gérer le pinch */
    width: 100%;
    height: 80vh;          /* ajuste selon ton layout */
    border: 1px solid #ccc;
    background: #f9f9f9;
}
#page-livre-canvas {
    position: absolute;
    top: 0;
    left: 0;
    transform-origin: center center;
    transition: transform 0.05s ease-out;
    cursor: grab;
}
#page-livre-canvas.dragging {
    cursor: grabbing;
}
#page-livre-image {
    display: block;
    max-width: 100%;
    height: auto;
}
.highlight-livre-image {
    position: absolute;
    background-color: rgba(255,0,0,0.3);
    pointer-events: none;
}
#page-livre-footer-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: #f8f8f8;
    border-top: 1px solid #ccc;
    padding: 8px 0;
    text-align: center;   /* centre le contenu horizontalement */
    font-size: 1em;
    z-index: 1000;        /* reste au-dessus du contenu */
}
#page-livre-footer-nav button {
    margin: 0 12px;
    padding: 6px 12px;
    font-size: 0.9em;
    cursor: pointer;
}
#page-livre-label-nav {
    font-weight: bold;
    margin: 0 12px;
}
#page-livre-combobox-nav {
    margin-left: 20px;
}
#label-zoom {
    margin-left: 20px;
    display: inline-block;
}
#zoom-checkbox {
    display: inline-block;
}
@media screen and (max-width: 600px) {
    #label-zoom,
    #zoom-checkbox {
        display: none;
    }
}
#resume-livre {
    margin-top: 0.8em;
    margin-bottom: 0.8em;
    line-height: 1.6;
    text-align: justify; /* optionnel pour mise en page élégante */
}
.modal {
    display: none; /* caché par défaut */
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0,0,0,0.5);
}
.modal-content {
    background-color: #fff;
    margin: 10% auto;
    padding: 20px;
    border-radius: 6px;
    width: 80%;
    box-shadow: 0 4px 8px rgba(0,0,0,0.3);
    text-align: left;   /* force l’alignement à gauche */
}
.close {
    color: #aaa;
    float: right;
    font-size: 28px;
    cursor: pointer;
}
.close:hover {
    color: #000;
}
.titre-info-detail {
    display: inline; /* permet le retour à la ligne naturel */
    font-size: 1.4em;
    font-weight: bold;
    color: black;
    margin-bottom: 8px;
}
.ligne-item-info-detail {
    margin-top: 4px;
}
.item-titre-info-detail {
    display: inline; /* permet le retour à la ligne naturel */
    margin-top: 6px;
    font-size: 0.9em;
    font-weight: bold;
    color: black;
}
.item-info-detail {
    display: inline; /* permet le retour à la ligne naturel */
    margin-left: 4px;
    margin-top: 6px;
    font-size: 0.8em;
    color: black;
}
.item-info-detail-lien {
    display: inline; /* permet le retour à la ligne naturel */
    margin-left: 10px;
    margin-top: 6px;
    font-size: 0.8em;
}
#page-article-ligne1 {
    margin-bottom: 6px;
}
#page-article-ligne1-titre {
    display: inline; /* permet le retour à la ligne naturel */
    font-size: 1.5em;
    font-weight: bold;
    color: black;
}
#page-article-ligne1-numpage {
    display: inline;
    font-size: 1.2em;
    color: #555;
    margin-left: 2px;
}
#container-page-article-image {
    position: relative;
    overflow: hidden;   /* masque les débordements */
    touch-action: none; /* nécessaire pour gérer le pinch */
    width: 100%;
    height: 80vh;          /* ajuste selon ton layout */
    border: 1px solid #ccc;
    background: #f9f9f9;
}
#page-article-canvas {
    position: absolute;
    top: 0;
    left: 0;
    transform-origin: center center;
    transition: transform 0.05s ease-out;
    cursor: grab;
}
#page-article-canvas.dragging {
    cursor: grabbing;
}
#page-article-image {
    display: block;
    max-width: 100%;
    height: auto;
}
.highlight-article-image {
    position: absolute;
    background-color: rgba(255,0,0,0.3);
    pointer-events: none;
}
.highlight-zone-image {
    position: absolute;
    background-color: rgba(0,255,0,0.1);
    pointer-events: none;
}
#page-article-footer-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: #f8f8f8;
    border-top: 1px solid #ccc;
    padding: 8px 0;
    text-align: center;   /* centre le contenu horizontalement */
    font-size: 1em;
    z-index: 1000;        /* reste au-dessus du contenu */
}
#page-article-footer-nav button {
    margin: 0 12px;
    padding: 6px 12px;
    font-size: 0.9em;
    cursor: pointer;
}
#page-article-combobox-nav {
    font-size: 1em;
    padding: 4px 8px;
}
.lazy_image {
    display: none;
}
.bio-L1 {
    margin-top: 0.8em;
    margin-bottom: 0.8em;
    line-height: 1.6;
    font-size: 1.4em;
}
.bio-L2 {
    margin-top: 0.8em;
    margin-bottom: 0.8em;
    line-height: 1.6;
    font-size: 1.2em;
}
.bio-L3 {
    text-indent: 1.5em;
    margin-top: 0.8em;
    margin-bottom: 0.8em;
    line-height: 1.6;
    font-size: 1.0em;
    text-align: justify; /* optionnel pour mise en page élégante */
}
.bio-L4 {
    text-indent: 1.5em;
    margin-bottom: 0.8em;
    line-height: 1.6;
    font-size: 1.0em;
    text-align: justify; /* optionnel pour mise en page élégante */
}
.bio-L5 {
    text-indent: 3.5em;
    margin-bottom: 0.8em;
    line-height: 1.6;
    font-size: 1.0em;
    text-align: justify; /* optionnel pour mise en page élégante */
}
#info_livre_txt_multi_auteur_responsabilite {
    width: calc(100% - 50px);
}
#info_livre_cb_editeur {
    width: calc(100% - 40px);
}
#info_livre_cb_lieu_edition {
    width: calc(100% - 40px);
}
#info_livre_cb_type_document {
    width: calc(100% - 40px);
}
#info_livre_cb_langue {
    width: calc(100% - 40px);
}
#info_livre_txt_format_document {
    width: calc(100% - 50px);
}
#info_livre_txt_materiel {
    width: calc(100% - 50px);
}
#info_livre_txt_info_complementaire {
    width: calc(100% - 50px);
}
#info_livre_txt_cote {
    width: calc(100% - 50px);
}
#info_livre_footer_bar {
    width: 100%;
    text-align: center;   /* centre le contenu horizontalement */
}
#info_livre_btn_ok {
    width: 80px;
}
#info_livre_btn_cancel {
    width: 80px;
}
#info_journal_cb_editeur {
    width: calc(100% - 40px);
}
#info_journal_cb_lieu_edition {
    width: calc(100% - 40px);
}
#info_journal_cb_type_document {
    width: calc(100% - 40px);
}
#info_journal_cb_langue {
    width: calc(100% - 40px);
}
#info_journal_txt_format_document {
    width: calc(100% - 50px);
}
#info_journal_txt_materiel {
    width: calc(100% - 50px);
}
#info_journal_txt_info_complementaire {
    width: calc(100% - 50px);
}
#info_journal_txt_cote {
    width: calc(100% - 50px);
}
#info_journal_footer_bar {
    width: 100%;
    text-align: center;   /* centre le contenu horizontalement */
}
#info_journal_btn_ok {
    width: 80px;
}
#info_journal_btn_cancel {
    width: 80px;
}
#liste_editeur_header_bar {
    width: 100%;
}
#liste_editeur_title {
    display: inline; /* permet le retour à la ligne naturel */
    font-size: 1.4em;
    font-weight: bold;
    color: black;
    margin-bottom: 8px;
}
#liste_editeur_btn_add_new {
    width: 80px;
}
#item_editeur_footer_bar {
    width: 100%;
    text-align: center;   /* centre le contenu horizontalement */
}
#item_editeur_lab_editeur {
    width: 100%;
}
#item_editeur_txt_editeur {
    width: 100%;
}
#item_editeur_div_msg_erreur {
    color: red;
    text-align: center;
    margin-top: 10px;
    width: 100%;
}
#item_editeur_btn_ok {
    width: 80px;
}
#item_editeur_btn_cancel {
    width: 80px;
}
#liste_index_header_bar {
    width: 100%;
}
#liste_index_title {
    display: inline; /* permet le retour à la ligne naturel */
    font-size: 1.4em;
    font-weight: bold;
    color: black;
    margin-bottom: 8px;
}
#liste_index_btn_add_new {
    width: 80px;
}
#item_index_footer_bar {
    width: 100%;
}
#item_index_lab_index_title {
    width: 100%;
}
#item_index_txt_index_value {
    width: 100%;
}
#item_index_btn_ok {
    width: 80px;
}
#item_index_btn_cancel {
    width: 80px;
}
.adm-T1 {
    border: 1px solid #ccc;          /* bordure grise légère */
}
.adm-L1 {
    text-align: left;
}
.bouton_oval {
    background-color: green;
    border: none;
    color: white;
    padding: 14px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    margin: 4px 2px;
    border-radius: 30px;
}
.st-left {
    text-align: left;
}
