/* R154 ดูบอลสด — กระดานแบบ UI ของเว็บเอง (docs/task/99 — 01-spec §4.3 มือถือก่อน/ผู้สูงอายุ ; สีต้นฉบับของ L: การ์ดขาว ขอบเทา ตัวอักษร #212529 เทา #6c757d แดงของธีม var(--nhf-red))
   ทุก selector ใต้ .fb-* เท่านั้น ; โหลดเฉพาะหน้า /member/football ผ่าน /_css/<ver>/football.css ; ตัวอักษร ≥ 17 px (ชื่อทีม/แท็บ/ปุ่ม) เวลา 16 px หนา สกอร์ 20 px ; ปุ่ม ≥ 48 px ; แถวคู่ ≥ 72 px ; โลโก้กล่อง 28×28 contain ไม่ครอป */
.fb-root{--fb-red:var(--nhf-red,#dc3545);--fb-text:#212529;--fb-muted:#6c757d;--fb-border:#e5e7eb;--fb-card:#fff;--fb-bg:#f3f4f6;color:var(--fb-text);font-size:17px;line-height:1.35;margin:0 0 16px;max-width:100%;overflow-x:clip}   /* R157: clip ไม่ใช่ hidden — hidden ทำให้ root เป็น scroll container → .fb-player sticky ยึดกับ root ที่ไม่เลื่อน = ถูกดันลง 59 px ตลอด ทับหัวแผงห้องคุย/กระดาน 49 px ; clip ตัดแนวนอนเหมือนเดิมแต่ sticky ยึด viewport ตามที่ R154 ตั้งใจ (เบราว์เซอร์เก่าไม่รู้จัก clip = visible ไม่พัง) */
.fb-root *,.fb-root *::before,.fb-root *::after{box-sizing:border-box}
.fb-root img{max-width:100%}
.fb-note{margin:0 0 8px;font-size:16px;color:var(--fb-muted)}
/* แท็บ: เลื่อนแนวนอน ปุ่ม ≥ 48 px 17 px */
.fb-tabs{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:2px 2px 8px;margin:0 0 8px;scrollbar-width:none}
.fb-tabs::-webkit-scrollbar{display:none}
.fb-tab{flex:0 0 auto;min-height:48px;padding:0 16px;border:1px solid var(--fb-border);border-radius:24px;background:var(--fb-card);color:var(--fb-text);font-size:17px;font-weight:600;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent}
.fb-tab.is-on{background:var(--fb-red);border-color:var(--fb-red);color:#fff}
.fb-tab:focus-visible{outline:3px solid rgba(220,53,69,.35);outline-offset:2px}
.fb-pane[hidden]{display:none}
.fb-stale{margin:0 0 8px;padding:10px 12px;border-radius:10px;background:#fff8e1;border:1px solid #ffe08a;color:#7a5a00;font-size:16px}
.fb-stale[hidden]{display:none}
/* ลีก */
.fb-league{background:var(--fb-card);border:1px solid var(--fb-border);border-radius:14px;margin:0 0 10px;overflow:hidden}
.fb-league__head{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;background:#f8f9fa;border-bottom:1px solid var(--fb-border);font-size:16px;font-weight:700}
.fb-league__name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fb-flag{width:20px;height:14px;object-fit:cover;border-radius:2px;flex:0 0 auto}
.fb-league__country{font-size:14px;color:var(--fb-muted);font-weight:400;flex:0 0 auto}
/* โลโก้: กล่อง contain ไม่ครอป ไม่ยืด */
.fb-logo{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;overflow:hidden;background:#f3f4f6;border-radius:6px}
.fb-logo img{width:100%;height:100%;object-fit:contain;display:block}
.fb-logo img[hidden]{display:none}
.fb-logo--team{width:28px;height:28px}
.fb-logo--league{width:24px;height:24px;background:transparent}
.fb-logo--ch{width:16px;height:16px;margin-top:4px;background:transparent}
.fb-logo--chip{width:20px;height:20px;background:transparent}
.fb-logo--row{width:24px;height:24px;margin-right:6px}
/* แถวคู่: ≥ 72 px ; ซ้าย เวลา/ป้าย · กลาง 2 บรรทัด · ขวา ปุ่ม */
.fb-match{display:flex;align-items:center;gap:8px;min-height:72px;padding:8px 10px;border-bottom:1px solid var(--fb-border)}
.fb-match:last-child{border-bottom:0}
.fb-match__when{flex:0 0 56px;display:flex;align-items:center;justify-content:center}
.fb-time{font-size:16px;font-weight:700;color:var(--fb-text)}
.fb-pill{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:28px;padding:0 8px;border-radius:999px;font-size:15px;font-weight:700;line-height:1}
.fb-pill--live{background:var(--fb-red);color:#fff;animation:fbPulse 1.6s ease-in-out infinite}
.fb-pill--ft{background:#e9ecef;color:var(--fb-muted)}
.fb-pill--pst{background:#fff3cd;color:#856404}
@keyframes fbPulse{0%,100%{opacity:1}50%{opacity:.75}}
@media (prefers-reduced-motion:reduce){.fb-pill--live{animation:none}}
.fb-match__teams{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px}
.fb-team{display:flex;align-items:center;gap:8px;min-width:0}
/* R157: ชื่อไทยตัดบรรทัดได้ (ปกติ ≤ 2 บรรทัดที่ 360 px) ไม่มี … — ไม่ใช้ line-clamp เพราะมันตัด <small> ชื่ออังกฤษที่อยู่ในกล่องเดียวกันแล้วเติม … */
.fb-team__name{flex:1 1 auto;min-width:0;font-size:17px;line-height:1.2;overflow:hidden;white-space:normal;word-break:break-word;overflow-wrap:anywhere}
.fb-team__name small{display:block;font-size:13px;color:var(--fb-muted);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fb-team__score{flex:0 0 auto;font-size:20px;font-weight:800;min-width:22px;text-align:right}
.fb-match__act{flex:0 0 76px;display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:stretch}
.fb-match__act--none{flex-basis:0}
.fb-watch{display:inline-flex;align-items:center;justify-content:center;width:76px;min-height:48px;border:0;border-radius:12px;background:var(--fb-red);color:#fff;font-size:17px;font-weight:700;text-decoration:none;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;position:relative}
.fb-watch:hover,.fb-watch:focus{color:#fff;text-decoration:none;filter:brightness(.95)}
.fb-watch.is-live::before{content:"";position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.35)}
@media (max-width:399.98px){.fb-match__when{flex-basis:48px}.fb-pill{min-width:40px;padding:0 6px}}
/* กีฬาอื่น */
.fb-event__title{font-size:17px;line-height:1.3}
.fb-event__ch{display:block;font-size:14px;color:var(--fb-muted)}
/* สถานะว่าง */
.fb-empty{padding:18px 14px;border:1px dashed var(--fb-border);border-radius:12px;background:var(--fb-card);color:var(--fb-muted);font-size:17px;line-height:1.5;text-align:center}
.fb-empty--big{padding:32px 16px;font-size:18px}
.fb-retry{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:140px;margin:14px auto 0;padding:0 20px;border:0;border-radius:12px;background:var(--fb-red);color:#fff;font-size:17px;font-weight:700;cursor:pointer}
.fb-empty--big .fb-retry{display:flex}
/* ตารางคะแนน */
.fb-chips{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;scrollbar-width:none}
.fb-chips::-webkit-scrollbar{display:none}
.fb-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:48px;padding:0 14px;border:1px solid var(--fb-border);border-radius:24px;background:var(--fb-card);color:var(--fb-text);font-size:16px;font-weight:600;white-space:nowrap;cursor:pointer}
.fb-chip.is-on{border-color:var(--fb-red);color:var(--fb-red);background:#fff5f5}
.fb-st__wrap{background:var(--fb-card);border:1px solid var(--fb-border);border-radius:14px;overflow:auto;margin:0 0 10px}
.fb-st{width:100%;border-collapse:collapse;font-size:16px;min-width:360px}
.fb-st caption{text-align:left;padding:8px 12px;font-weight:700;font-size:16px;background:#f8f9fa}
.fb-st th,.fb-st td{padding:8px 6px;text-align:center;border-bottom:1px solid var(--fb-border);white-space:nowrap}
.fb-st th{font-size:14px;color:var(--fb-muted);font-weight:600;background:#f8f9fa}
.fb-st__team{text-align:left!important;display:flex;align-items:center;min-width:140px;font-size:16px}
.fb-st__pts{font-weight:800;font-size:17px}
.fb-st tr:last-child td{border-bottom:0}
.fb-form{display:inline-flex;gap:3px}
.fb-form__d{width:10px;height:10px;border-radius:50%;background:#adb5bd;display:inline-block}
.fb-form__d--W{background:#28a745}
.fb-form__d--L{background:var(--fb-red)}
/* ไฮไลต์ */
.fb-hls{display:grid;grid-template-columns:1fr;gap:10px}
.fb-hl{display:flex;flex-direction:column;background:var(--fb-card);border:1px solid var(--fb-border);border-radius:14px;overflow:hidden;color:var(--fb-text);text-decoration:none}
.fb-hl:hover{text-decoration:none;color:var(--fb-text)}
.fb-hl__thumb{display:block;aspect-ratio:16/9;background:#000}
.fb-hl__thumb img{width:100%;height:100%;object-fit:contain;display:block}
.fb-hl__body{display:block;padding:10px 12px;min-height:48px}
.fb-hl__title{display:block;font-size:17px;font-weight:600;line-height:1.3}
.fb-hl__body small{display:block;font-size:14px;color:var(--fb-muted);margin-top:2px}
/* แผง player (inline เท่านั้น) */
.fb-player{position:sticky;top:var(--site-header-h,56px);z-index:20;background:var(--fb-card);border:1px solid var(--fb-border);border-radius:14px;margin:0 0 10px;overflow:hidden;box-shadow:0 6px 18px rgba(0,0,0,.12)}
.fb-player[hidden]{display:none}
.fb-player__box{position:relative;width:100%;aspect-ratio:16/9;background:#000}
.fb-player__box iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.fb-player__card{display:flex;align-items:center;gap:10px;padding:10px 12px}
.fb-player__text{flex:1 1 auto;min-width:0}
.fb-player__title{font-size:17px;font-weight:700;line-height:1.3}
.fb-player__sub{font-size:14px;color:var(--fb-muted)}
.fb-player__close{flex:0 0 auto;min-height:48px;min-width:72px;padding:0 16px;border:1px solid var(--fb-border);border-radius:12px;background:var(--fb-card);color:var(--fb-text);font-size:17px;font-weight:700;cursor:pointer}
.fb-player__help{margin:0;padding:0 12px 10px;font-size:14px;color:var(--fb-muted)}
@media (min-width:768px){.fb-hls{grid-template-columns:repeat(2,1fr)}.fb-player{position:static;box-shadow:none}.fb-match__when{flex-basis:72px}.fb-match__act{flex-basis:96px}.fb-watch{width:96px}}
@media (min-width:992px){.fb-hls{grid-template-columns:repeat(3,1fr)}}

/* R157/D161e คนกำลังดู: ป้ายหัวหน้า (17 px) + "👁 n" ใต้ ▶ (15 px เท่าป้ายเล็กอื่นของกระดาน ; .fb-match__act เป็น column อยู่แล้ว) ; สีรองเดิม #6c757d */
.fb-head__viewers{display:flex;align-items:center;gap:4px;margin:0 0 8px;font-size:17px;line-height:1.3;color:#6c757d;white-space:nowrap}
.fb-head__viewers b{font-weight:700;color:#212529}
.fb-match__viewers{margin-top:2px;font-size:15px;line-height:1.2;color:#6c757d;white-space:nowrap}
/* R157 มือถือ: แผง player ไม่เกิน 50 vh (เหลือที่ให้ห้องคุย + กระดาน) — เท่ากับฝั่ง R */
@media (max-width:991.98px){.fb-player__box{max-height:50vh}}
