/*
 * ห้องสมุดคนตาบอด — สไตล์ของโมดูลใน YOOtheme
 * ==================================================================
 * ไฟล์นี้อยู่ใน child theme จึงปลอดภัยจากการอัปเดต YOOtheme
 *
 * ใช้ตัวแปรสีของ UIkit ที่ YOOtheme ใช้อยู่ (--uk-*) เพื่อให้โมดูล
 * เปลี่ยนสีตามธีมที่ตั้งใน Customizer อัตโนมัติ
 * ถ้าธีมไม่มีตัวแปรนั้น จะถอยไปใช้ค่าสำรองที่ผ่านเกณฑ์คอนทราสต์
 *
 * ------------------------------------------------------------------
 * ข้อห้าม 3 ข้อ (อย่าแก้)
 * ------------------------------------------------------------------
 * 1. ห้ามใส่ outline: none ให้ :focus
 *    ผู้ใช้คีย์บอร์ดและผู้ใช้สายตาเลือนรางจะไม่รู้ว่าอยู่ตรงไหน
 * 2. ห้ามเปลี่ยน .visually-hidden เป็น display:none
 *    screen reader จะอ่านข้อความอธิบายไม่เจอ เช่น "มีในรูปแบบ:"
 * 3. ห้ามสื่อความหมายด้วยสีอย่างเดียว ต้องมีข้อความกำกับเสมอ
 */

/* ข้อความสำหรับ screen reader — ซ่อนจากสายตาแต่ยังอ่านออกเสียงได้ */
.blindlib-search-module .visually-hidden,
.blindlib-latest-module .visually-hidden,
.blindlib-news-module .visually-hidden,
.blindlib-memberstatus-module .visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* กรอบโฟกัสที่เห็นชัด — 3px และเว้นระยะ เห็นได้แม้บนพื้นเข้ม */
.blindlib-search-module :focus-visible,
.blindlib-latest-module :focus-visible,
.blindlib-news-module :focus-visible,
.blindlib-memberstatus-module :focus-visible {
    outline: 3px solid var(--uk-global-primary-background, #1565c0);
    outline-offset: 2px;
}

/* ---------------- ช่องค้นหา ---------------- */
.blindlib-search-module .blindlib-search-row { margin-bottom: .75rem; }

.blindlib-search-module label {
    display: block;
    font-weight: 600;
    margin-bottom: .25rem;
}

.blindlib-search-module .blindlib-help {
    font-size: .875rem;
    margin: 0 0 .35rem;
    color: var(--uk-global-muted-color, #5b6572);
}

.blindlib-search-module input[type="search"],
.blindlib-search-module select {
    width: 100%;
    padding: .6rem .75rem;
    /* 16px กัน iOS ซูมอัตโนมัติตอนโฟกัส ซึ่งทำให้ผู้ใช้สับสน */
    font-size: 16px;
    border: 1px solid var(--uk-global-border, #b3b3b3);
    border-radius: 3px;
    background: #fff;
    color: var(--uk-global-color, #333);
}

.blindlib-search-module button {
    /* 44px ตามเกณฑ์ขนาดเป้าหมายสัมผัส WCAG 2.5.5 */
    min-height: 44px;
    padding: .6rem 1.2rem;
    border: 0;
    border-radius: 3px;
    font-size: 1rem;
    cursor: pointer;
    /* ค่าสำรอง #1565c0 ให้คอนทราสต์กับตัวอักษรขาว 5.75:1 (ผ่าน WCAG AA)
       ไม่ใช้ #1e87f0 ซึ่งเป็นค่าเริ่มต้นของ UIkit เพราะได้แค่ 3.63:1 */
    background: var(--uk-global-primary-background, #1565c0);
    color: #fff;
}

.blindlib-search-module button:hover { filter: brightness(.92); }

.blindlib-search-module .blindlib-voice { margin-bottom: .75rem; }

.blindlib-search-module #blindlib-voice-btn {
    background: var(--uk-global-secondary-background, #222);
}

/* ขณะฟัง: เปลี่ยนสี + ข้อความบนปุ่มก็เปลี่ยนด้วย (ไม่พึ่งสีอย่างเดียว) */
.blindlib-search-module #blindlib-voice-btn[aria-pressed="true"] {
    background: var(--uk-global-danger-background, #c1352f);
}

/* ---------------- รายการหนังสือ / ข่าว ---------------- */
.blindlib-latest-list,
.blindlib-news-days,
.blindlib-news-headlines {
    list-style: none;
    padding-left: 0;
    margin: 0;
}

.blindlib-latest-item,
.blindlib-news-day {
    padding: .65rem 0;
    border-bottom: 1px solid var(--uk-global-border, #e5e5e5);
}

.blindlib-latest-item:last-child,
.blindlib-news-day:last-child { border-bottom: 0; }

/* ขีดเส้นใต้ลิงก์เสมอ ไม่แยกลิงก์ด้วยสีอย่างเดียว */
.blindlib-latest-item a {
    font-weight: 600;
    text-decoration: underline;
}

.blindlib-latest-author,
.blindlib-news-source,
.blindlib-held-by {
    display: block;
    font-size: .875rem;
    color: var(--uk-global-muted-color, #5b6572);
}

/* ฟอร์แมตที่มี — ผู้ใช้ตาบอดต้องรู้ก่อนคลิก จึงเน้นให้ชัด */
.blindlib-latest-formats {
    display: block;
    font-size: .875rem;
    font-weight: 500;
    color: var(--uk-global-color, #333);
}

/* ---------------- ข่าวประจำวัน ---------------- */
.blindlib-news-date { font-weight: 600; display: block; }

.blindlib-news-count {
    font-size: .875rem;
    color: var(--uk-global-muted-color, #5b6572);
}

.blindlib-news-links { display: block; margin-top: .35rem; }

.blindlib-news-links a {
    display: inline-block;
    min-height: 44px;
    line-height: 44px;
    padding: 0 .9rem;
    margin-right: .4rem;
    border: 1px solid var(--uk-global-border, #b3b3b3);
    border-radius: 3px;
    text-decoration: none;
}

.blindlib-news-note {
    font-size: .8125rem;
    color: var(--uk-global-muted-color, #5b6572);
    margin-top: .5rem;
}

/* ---------------- สถานะสมาชิก ---------------- */
.blindlib-memberstatus-module p { margin: 0 0 .4rem; }

/* หมดอายุ: ใช้ทั้งสีและตัวหนา และมีข้อความบอกอยู่แล้วใน HTML */
.blindlib-memberstatus-module .blindlib-status-expired {
    color: var(--uk-global-danger-background, #c1352f);
    font-weight: 700;
}

.blindlib-memberstatus-module .blindlib-status-note {
    font-size: .875rem;
    color: var(--uk-global-muted-color, #5b6572);
}

/* โหมดคอนทราสต์สูงของระบบ — บังคับให้ยังเห็นกรอบ */
@media (forced-colors: active) {
    .blindlib-search-module button,
    .blindlib-news-links a { border: 1px solid currentColor; }
}

/* ผู้ใช้ที่ตั้งค่าลดการเคลื่อนไหว */
@media (prefers-reduced-motion: reduce) {
    .blindlib-search-module *,
    .blindlib-latest-module *,
    .blindlib-news-module *,
    .blindlib-memberstatus-module * {
        transition: none !important;
        animation: none !important;
    }
}
