/**
 *                          ___                   _       _         _ 
 *                         / __)                 | |     | |       | |
 *     _ _ _ _ _ _ _ _ _ _| |__ _____  ____ _   _| |  _  | |__   __| |
 *    | | | | | | | | | (_   __|____ |/ ___) | | | |_/ ) |  _ \ / _  |
 *    | | | | | | | | | | | |  / ___ | |   | |_| |  _ ( _| |_) | (_| |
 *     \___/ \___/ \___(_)|_|  \_____|_|   |____/|_| \_|_)____/ \____|
 *                                                                    
 *
 * 	Author: MD OMAR FARUK
 * 	Author URI: www.faruk.bd
 * 	Author Contact: https://faruk.bd/#contact
 * 	Author Email: info@faruk.bd | farukmr@gmail.com
 * 	Copyright © 2026
 *                          ___                   _       _         _ 
 *                         / __)                 | |     | |       | |
 *     _ _ _ _ _ _ _ _ _ _| |__ _____  ____ _   _| |  _  | |__   __| |
 *    | | | | | | | | | (_   __|____ |/ ___) | | | |_/ ) |  _ \ / _  |
 *    | | | | | | | | | | | |  / ___ | |   | |_| |  _ ( _| |_) | (_| |
 *     \___/ \___/ \___(_)|_|  \_____|_|   |____/|_| \_|_)____/ \____|
 *                                                                    
 */
/* Quran CMS - digital tasbih */
.ts-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 1.4rem; align-items: start; padding-bottom: 3rem; }
.ts-main { padding: 1.6rem 1.2rem; display: flex; flex-direction: column; align-items: center; gap: 1.1rem; text-align: center; }
.ts-dhikr { min-height: 120px; }
.ts-ar { font-family: var(--font-ar); font-size: clamp(1.8rem, 5vw, 2.6rem); line-height: 1.9; color: var(--ink); direction: rtl; }
.ts-pron { color: var(--brand); font-weight: 700; margin-top: .2rem; }
.ts-mean { color: var(--ink-2); margin-top: .2rem; }
.ts-src { color: var(--muted); display: block; margin-top: .3rem; }
.ts-tap { position: relative; width: min(280px, 70vw); aspect-ratio: 1; border-radius: 50%; border: 0; cursor: pointer; background: radial-gradient(circle at 35% 30%, #16a37f, var(--brand) 55%, #054434);
  color: #fff; box-shadow: 0 18px 40px rgba(11,107,85,.35), inset 0 -8px 18px rgba(0,0,0,.18); display: grid; place-items: center; -webkit-tap-highlight-color: transparent; user-select: none; touch-action: manipulation; }
.ts-tap svg { position: absolute; inset: -14px; width: calc(100% + 28px); height: calc(100% + 28px); transform: rotate(-90deg); pointer-events: none; }
.ts-track { fill: none; stroke: var(--line); stroke-width: 6; }
.ts-prog { fill: none; stroke: var(--gold-2); stroke-width: 6; stroke-linecap: round; transition: stroke-dashoffset .2s; }
.ts-count { font-size: clamp(3rem, 12vw, 4.6rem); font-weight: 800; line-height: 1; }
.ts-of { position: absolute; bottom: 24%; font-size: 1rem; opacity: .8; font-weight: 600; }
.ts-tap.bump { animation: ts-bump .16s ease; }
@keyframes ts-bump { 50% { transform: scale(.965); } }
#tasbih-app.is-done .ts-tap { box-shadow: 0 0 0 10px rgba(232,185,73,.35), 0 18px 40px rgba(11,107,85,.35); }
.ts-rounds { min-height: 1.2em; color: var(--gold); font-weight: 700; }
.ts-controls { display: flex; gap: .6rem; }
.ts-controls .icon-btn.is-on { background: var(--brand-soft); color: var(--brand); }
.ts-side { display: grid; gap: 1rem; }
.ts-list { padding: 1rem; display: grid; gap: .4rem; }
.ts-list h3 { margin: .2rem .3rem .4rem; }
.ts-item { display: flex; flex-direction: column; align-items: flex-end; gap: .1rem; text-align: right; background: var(--surface-2); border: 1px solid var(--line-2); border-radius: 12px; padding: .55rem .8rem; cursor: pointer; font: inherit; color: var(--ink); }
.ts-item .ar { font-family: var(--font-ar); font-size: 1.25rem; line-height: 1.8; }
.ts-item small { color: var(--muted); text-align: left; align-self: stretch; }
.ts-item.on { border-color: var(--brand); background: var(--brand-soft); }
.ts-h { display: flex; justify-content: space-between; align-items: center; gap: .6rem; border-bottom: 1px dashed var(--line); padding: .35rem 0; }
.ts-h .ar { font-family: var(--font-ar); font-size: 1.1rem; }
.ts-h strong { color: var(--brand); }
.ts-history h3 { margin-top: 0; }
@media (max-width: 900px) { .ts-wrap { grid-template-columns: 1fr; } }
