/* Selo da loja + QR dos apps oficiais (komori_app_badges.php) — APPS-SELOS-QR-20261003.
   Selos oficiais sem recolorir, mesma altura visual (Apple ≥ 40px), área livre ao redor. */
.kab{--kab-accent:#0f2f4f;--kab-fg:#14202e;--kab-muted:#5b6878;--kab-card:#fff;--kab-line:rgba(15,47,79,.12);
  --kab-badge-h:48px;--kab-qr:112px;font-family:inherit;color:var(--kab-fg);box-sizing:border-box;margin:0 auto;max-width:1080px;padding:28px 20px}
.kab *,.kab *::before,.kab *::after{box-sizing:border-box}
.kab--dark{--kab-fg:#eef3f8;--kab-muted:#a9b6c6;--kab-card:rgba(255,255,255,.06);--kab-line:rgba(255,255,255,.14)}
.kab-head{display:flex;align-items:center;gap:14px;margin:0 0 18px}
.kab-title{display:block;font-size:1.25rem;font-weight:700;line-height:1.35;color:var(--kab-fg)}
.kab-lead{margin:4px 0 0;color:var(--kab-muted);font-size:.92rem;line-height:1.6}
.kab-icon{width:48px;height:48px;border-radius:22%;flex:0 0 48px;object-fit:cover;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.kab-stores{display:flex;flex-wrap:wrap;gap:16px;align-items:stretch}
.kab-store{display:flex;align-items:center;gap:18px;background:var(--kab-card);border:1px solid var(--kab-line);border-radius:16px;padding:16px 18px;min-width:0}
.kab-badge-col{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.kab-badge{display:inline-flex;position:relative;line-height:0;border-radius:8px;outline-offset:4px;text-decoration:none}
.kab-badge-img{height:var(--kab-badge-h);width:auto;display:block}
a.kab-badge:hover .kab-badge-img{filter:brightness(1.12)}
a.kab-badge:focus-visible{outline:3px solid var(--kab-accent)}
.kab-meta{font-size:.78rem;color:var(--kab-muted);line-height:1.3;white-space:nowrap}
.kab-store.is-soon .kab-badge-img{opacity:.38}
.kab-soon-tag{position:absolute;right:-6px;top:-9px;background:#fff;color:#4a5563;border:1px solid #cfd6df;border-radius:999px;font-size:.68rem;line-height:1;padding:4px 8px;font-weight:600;white-space:nowrap}
.kab-qr{margin:0;display:flex;flex-direction:column;align-items:center;gap:6px;width:calc(var(--kab-qr) + 30px)}
.kab-qr img{width:var(--kab-qr);height:var(--kab-qr);background:#fff;border-radius:8px;padding:6px;box-shadow:0 0 0 1px rgba(0,0,0,.08);display:block;box-sizing:content-box}
.kab-qr figcaption{font-size:.72rem;color:var(--kab-muted);text-align:center;line-height:1.35}
.kab-tf{display:inline-flex;align-items:center;gap:8px;height:var(--kab-badge-h);padding:0 14px;border-radius:9px;background:#000;color:#fff;font-size:.85rem;line-height:1.2}
.kab-tf b{font-weight:700}
/* Página de apps (vários) */
.kab--grid{max-width:1180px;padding:8px 0}
.kab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,520px),1fr));gap:18px}
.kab-card{background:var(--kab-card);border:1px solid var(--kab-line);border-radius:18px;padding:18px}
.kab-card-head{display:flex;gap:14px;align-items:center;margin-bottom:14px}
.kab-card-head strong{font-size:1.08rem}
.kab-card-head p{margin:2px 0 0;font-size:.84rem;color:var(--kab-muted);line-height:1.5}
.kab-card .kab-store{border:0;background:transparent;padding:4px 0;gap:12px}
.kab-card .kab-stores{gap:10px 22px}
.kab-card{--kab-badge-h:40px}
.kab-card .kab-qr figcaption{font-size:.68rem}
.kab--compact{padding:12px 0}
/* Celular / tablet: sem QR; a loja da pessoa grande e primeiro, a outra menor. */
.kab[data-kab-os=android] .kab-qr,.kab[data-kab-os=ios] .kab-qr{display:none}
.kab[data-kab-os=android] .kab-store,.kab[data-kab-os=ios] .kab-store{padding:12px 14px}
.kab[data-kab-os=android] .kab-store.is-mine,.kab[data-kab-os=ios] .kab-store.is-mine{--kab-badge-h:58px;order:-1;flex:1 1 100%}
.kab[data-kab-os=android] .kab-store:not(.is-mine),.kab[data-kab-os=ios] .kab-store:not(.is-mine){--kab-badge-h:36px;border-style:dashed}
.kab[data-kab-os=android] .kab-card .kab-store:not(.is-mine),.kab[data-kab-os=ios] .kab-card .kab-store:not(.is-mine){border:0}
@media (max-width:640px){
  .kab{padding:22px 14px}
  .kab-stores{flex-direction:column}
  .kab-store{width:100%}
  .kab-head{align-items:flex-start}
  .kab[data-kab-os=desktop] .kab-store{justify-content:space-between}
}
/* TARJA "baixe o app oficial" (celular E desktop) — TARJA-APPS-OFICIAIS-20261018; FAIXA FINA no rodapé desde 2026-10-19
   (pedido do Neves: o cartão flutuante cobria tabela/botões). Encostada embaixo, largura toda, ~40 px, uma linha.
   Selo oficial sem recolorir; × some 30 dias. Enquanto aberta o kab.js reserva a altura no padding-bottom do <body>. */
.kab-banner{--kab-strip-h:40px;position:fixed;left:0;right:0;bottom:var(--kab-banner-bottom,0px);z-index:1038; /* abaixo de modal/diálogo (Bootstrap 1050+, koDialog, Novidades) */
  display:flex;align-items:center;justify-content:center;gap:10px;min-height:var(--kab-strip-h);margin:0;
  padding:4px 44px 4px 12px;padding-bottom:calc(4px + env(safe-area-inset-bottom,0px));box-sizing:border-box;
  background:#fff;color:#14202e;border-top:1px solid rgba(10,20,40,.12);box-shadow:0 -2px 10px rgba(10,20,40,.06);
  font:13px/1.3 system-ui,-apple-system,"Hiragino Sans","Noto Sans JP",sans-serif;transform:none;width:auto;max-width:none;border-radius:0}
.kab-banner[hidden]{display:none!important}
.kab-banner>img{width:22px;height:22px;border-radius:22%;flex:0 0 22px}
.kab-banner-txt{flex:0 1 auto;min-width:0;display:flex;align-items:baseline;gap:8px;overflow:hidden;white-space:nowrap}
.kab-banner-txt b{display:block;font-size:13px;font-weight:700;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal;min-width:0}
.kab-banner-txt small{display:block;color:#5b6878;font-size:12px;line-height:1.3;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.kab-banner-badges{display:flex;gap:6px;align-items:center;flex:0 0 auto}
.kab-banner-badge{display:inline-flex;line-height:0;border-radius:5px;text-decoration:none!important}
.kab-banner-badge img{height:28px;width:auto;display:block}
.kab-banner-badge:hover img{filter:brightness(1.12)}
.kab-banner-badge:focus-visible{outline:3px solid #0b57d0;outline-offset:2px}
.kab-banner-x{position:absolute;right:6px;top:50%;transform:translateY(-50%);margin-top:calc(env(safe-area-inset-bottom,0px) / -2);
  width:30px;height:30px;border:0;background:transparent;color:#5b6878;font-size:20px;line-height:1;border-radius:50%;cursor:pointer;padding:0}
.kab-banner-x:hover{background:rgba(0,0,0,.06)}
.kab-banner-x:focus-visible{outline:2px solid #0b57d0}
.kab-banner--desktop{left:0;right:0;transform:none;width:auto;max-width:none}
/* Subtítulo só quando cabe; no celular a linha é ícone + nome + selo da loja do aparelho + ×. */
@media (max-width:820px){.kab-banner-txt small{display:none}}
@media (max-width:640px){.kab-banner{justify-content:flex-start;gap:8px;padding-left:10px}.kab-banner-badges{margin-left:auto}.kab-banner-badge img{height:26px}}
@media (max-width:340px){.kab-banner>img{display:none}}
@media (prefers-color-scheme:dark){.kab-banner{background:#1d2633;color:#eef3f8;border-top-color:rgba(255,255,255,.12);box-shadow:0 -2px 10px rgba(0,0,0,.3)}.kab-banner-txt small,.kab-banner-x{color:#a9b6c6}.kab-banner-x:hover{background:rgba(255,255,255,.08)}}
html[data-theme=dark] .kab-banner,html[data-bs-theme=dark] .kab-banner,html.dark .kab-banner,body.dark-mode .kab-banner{background:#1d2633;color:#eef3f8;border-top-color:rgba(255,255,255,.12);box-shadow:0 -2px 10px rgba(0,0,0,.3)}
html[data-theme=dark] .kab-banner-txt small,html[data-bs-theme=dark] .kab-banner-txt small,html.dark .kab-banner-txt small,body.dark-mode .kab-banner-txt small,
html[data-theme=dark] .kab-banner-x,html[data-bs-theme=dark] .kab-banner-x,html.dark .kab-banner-x,body.dark-mode .kab-banner-x{color:#a9b6c6}
html[data-theme=light] .kab-banner,html[data-bs-theme=light] .kab-banner{background:#fff;color:#14202e;border-top-color:rgba(10,20,40,.12);box-shadow:0 -2px 10px rgba(10,20,40,.06)}
html[data-theme=light] .kab-banner-txt small,html[data-bs-theme=light] .kab-banner-txt small,html[data-theme=light] .kab-banner-x,html[data-bs-theme=light] .kab-banner-x{color:#5b6878}
@media print{.kab-banner{display:none!important}}
.kab-card .kab-qr{width:calc(var(--kab-qr) + 14px)}.kab-card .kab-stores{gap:10px 18px}.kab-card .kab-store{gap:10px}
.kab-qr figcaption{text-wrap:balance;word-break:keep-all;overflow-wrap:anywhere}
