[hidden] { display: none !important; }
.header__info-progress,.install-btn__install { display: none !important; }
.header__info-title { line-height: 1.35; }
.gallery-item { padding: 0; border: 0; background: transparent; flex: none; cursor: pointer; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px; }
.img-scroll__list { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
.gallery-item { width: 126px; height: 224px; scroll-snap-align: start; }
#app-description { max-height: 150px; overflow: hidden; white-space: pre-wrap; }
#app-description.expanded { max-height: none; }
#description-toggle { color: #00875f; font-weight: 600; border: 0; background: transparent; padding: 12px 0; cursor: pointer; }

.stars { color:#00875f; letter-spacing:1px; }
.rating-row { display:flex; gap:10px; align-items:center; font-size:12px; margin:4px 0; }
.rating-row>div { height:9px; flex:1; background:#e8eaed; border-radius:10px; overflow:hidden; }
.rating-row i { height:100%; display:block; background:#00875f; border-radius:10px; }
.review { margin:25px 0; font-size:14px; color:#5f6368; }
.review-user { display:flex; gap:12px; align-items:center; }
.review-user img { width:32px; height:32px; border-radius:50%; object-fit:cover; }
.review-meta { display:flex; gap:10px; align-items:center; margin:10px 0; font-size:12px; }
.review p { line-height:1.6; }
[role=button],button { -webkit-tap-highlight-color:transparent; cursor:pointer; }
[role=button]:focus-visible,button:focus-visible { outline:3px solid #00875f; outline-offset:4px; }
#qr-code svg { width:100%; height:100%; background:white; }
dialog { border:0; border-radius:16px; padding:28px; max-width:min(440px,90vw); color:#202124; }
dialog::backdrop { background:rgba(0,0,0,.75); }
.dialog-close { position:absolute; right:10px; top:6px; background:none; border:0; font-size:28px; cursor:pointer; }
#install-help h2 { font-size:22px; font-weight:700; margin-bottom:16px; }
#install-help p { line-height:1.7; margin:16px 0; }
#help-play { background:#00875f; color:#fff; border:0; border-radius:8px; padding:12px 20px; }
#gallery-view { background:#111; max-width:95vw; max-height:95vh; padding:30px 40px; overflow:hidden; }
#gallery-view img { max-height:85vh; max-width:75vw; object-fit:contain; }
#gallery-view button { color:white; background:transparent; border:0; }
#gallery-prev,#gallery-next { position:absolute; top:48%; font-size:36px; padding:5px; }
#gallery-prev {left:4px;} #gallery-next {right:4px;}
#toast { position:fixed; bottom:90px; left:50%; transform:translateX(-50%); background:#202124; color:white; border-radius:8px; padding:12px 20px; max-width:90vw; z-index:100; opacity:0; pointer-events:none; transition:opacity .2s; }
#toast.visible { opacity:1; }
@media(max-width:767px) { .gallery-item{width:154px;height:274px;} }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; scroll-behavior:auto!important; transition:none!important; } }
/* Keep app-specific wording within the reference text rhythm. */
.header__info { min-width: 0; }
.header__info-title { overflow-wrap: anywhere; }
.header__info-description { overflow-wrap: anywhere; }


.description__content, .review p { overflow-wrap: break-word; }

/* Match the reference's requirement spacing and outlined app tags. */
#description-toggle { font-size: 14px; font-weight: 400; line-height: 20px; padding: 8px 0 0; }
.description:has(#description-toggle) + .description { margin-top: 4px; }
.app-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 8px; color: #5f6368; }
.app-tags span { display: inline-flex; align-items: center; min-height: 30px; padding: 4px 12px; border: 1px solid #dadce0; border-radius: 999px; font-size: 14px; line-height: 20px; white-space: nowrap; }
.description:has(.app-tags) + .description { margin-top: 28px; }
/* Review metrics use the original page's spacing and star artwork. */
.rating-stars { display: inline-flex; align-items: center; gap: 0; color: #00875f; }
.rating-stars svg { width: 16px; height: 16px; flex: 0 0 16px; display: block; }
.partial-star { width: 16px; height: 16px; position: relative; display: inline-block; color: #d6e8e2; }
.partial-star::after { content: ''; position: absolute; inset: 0 50% 0 0; background: #00875f; clip-path: polygon(50% 9%,62.5% 34%,90% 38%,70% 57.5%,74.5% 85%,50% 72%,25.5% 85%,30% 57.5%,10% 38%,37.5% 34%); width: 16px; clip-path: inset(0 50% 0 0); mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m10 1.8 2.5 5 5.5.8-4 3.9.9 5.5-4.9-2.6L5.1 17l.9-5.5-4-3.9 5.5-.8L10 1.8Z'/%3E%3C/svg%3E") center/contain; }
.review-more { padding: 0; border: 0; background: transparent; color: #444; font-size: 22px; line-height: 20px; width: 8px; height: 20px; cursor: pointer; }
.comments__list-stars .rating-stars { margin-right: 0; }
.comments__scoring-content .rating-row { font-size: 11px; margin: 0 0 6.5px; gap: 14px; color: #444; }
.comments__scoring-content .rating-row > div { height: 9px; background: #e3e3e3; }
.rb-qrcode__phone-name { width: 100%; text-align: center; }
.install-btn__play { width: 100%; height: 100%; min-height: inherit; align-items: center; justify-content: center; text-align: center; color: #fff; font-size: 16px; font-weight: 600; }
/* Installed state keeps the same full-size primary action. */
.install-btn[data-state="installed"] { display: flex; align-items: center; justify-content: center; min-height: 48px; }
.install-btn[data-state="installed"] .install-btn__play { display: flex; min-height: 48px; width: 100%; align-items: center; justify-content: center; font-size: 14px; font-weight: 600; }
.header.is-installed .header__info-description { display: none; }
.header.is-installed .header__info-progress { display: block !important; color: #202124; }
/* Reference spacing combines its 8px gap and 11px image margin. */
.img-scroll__list { gap: 19px; }
