.tasbih-app{min-height:100dvh;padding:8px 12px calc(5.5rem + env(safe-area-inset-bottom));font-family:var(--font-bangla), system-ui, sans-serif;flex-direction:column;display:flex}.tasbih-app__header{flex:none;align-items:center;gap:12px;min-height:58px;padding:0 4px 8px;display:flex}.tasbih-app__header h1{font-size:1.25rem;font-weight:800}.tasbih-icon-button,.tasbih-round-button,.tasbih-delete-button{border:1px solid var(--nm-hairline);color:#14532d;width:44px;min-width:44px;height:44px;box-shadow:var(--nm-shadow-raised);background:#fff;border-radius:9999px;justify-content:center;align-items:center;transition:transform .16s,background-color .16s;display:inline-flex}.tasbih-icon-button svg,.tasbih-round-button svg,.tasbih-delete-button svg,.tasbih-reset-button svg{stroke-width:2px;width:21px;height:21px}.tasbih-icon-button:active,.tasbih-round-button:active,.tasbih-delete-button:active{transform:scale(.95)}.tasbih-screen,.tasbih-collection{flex:1 0 auto;align-self:center;width:min(100%,700px)}.tasbih-counter-card{background:#fff;flex-direction:column;align-items:stretch;min-height:min(750px,100dvh - 150px);padding:18px 16px 22px;display:flex}.tasbih-counter-card__top{grid-template-columns:minmax(0,1fr) 64px;align-items:start;gap:12px;min-height:92px;display:grid}.tasbih-counter-card__dhikr{text-align:left;min-width:0}.tasbih-arabic{color:var(--nm-text);font-family:var(--font-sans), "Noto Naskh Arabic", serif;font-size:clamp(1.3rem,5vw,1.9rem);font-weight:600;line-height:1.65}.tasbih-bangla-name{color:var(--nm-muted);font-size:.8rem;font-weight:600;line-height:1.4}.tasbih-fraction{min-width:60px;color:var(--nm-text);font-variant-numeric:tabular-nums;flex-direction:column;align-items:center;font-size:1.1rem;font-weight:800;line-height:1.25;display:flex}.tasbih-fraction span:first-child{color:var(--nm-primary-end)}.tasbih-fraction span:nth-child(2){background:var(--nm-hairline);width:100%;height:1px;margin:4px 0}.tasbih-stepper{justify-content:space-between;align-items:center;min-height:64px;padding:0 3px;display:flex}.tasbih-round-button{width:48px;min-width:48px;height:48px}.tasbih-stepper__hint{color:var(--nm-muted);font-size:.72rem}.tasbih-counter-area{flex:1;place-items:center;min-height:280px;padding:10px 0;display:grid}.tasbih-counter-ring-wrap{aspect-ratio:1;place-items:center;width:min(78vw,370px);display:grid;position:relative}.tasbih-counter-ring{width:100%;height:100%;position:absolute;inset:0;overflow:visible;transform:rotate(-90deg)}.tasbih-counter-ring circle{fill:none;stroke-width:9px}.tasbih-counter-ring__track{stroke:color-mix(in srgb, var(--nm-primary-end) 12%, white)}.tasbih-counter-ring__progress{stroke:var(--nm-primary-end);stroke-linecap:round;transition:stroke-dashoffset .42s cubic-bezier(.2,.7,.2,1)}.tasbih-tap-button{border:1px solid var(--nm-hairline);width:81%;height:81%;color:var(--nm-text-heading);box-shadow:var(--nm-shadow-raised);touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.tasbih-tap-button:active:not(:disabled){transform:scale(.985)}.tasbih-tap-button:disabled{cursor:default}.tasbih-tap-button.is-complete{box-shadow:0 0 0 8px color-mix(in srgb, var(--nm-primary-end) 12%, transparent), 0 0 28px color-mix(in srgb, var(--nm-primary-end) 24%, transparent), var(--nm-shadow-raised)}.tasbih-tap-button__count{z-index:1;font-variant-numeric:tabular-nums;font-size:clamp(2.75rem,12vw,4rem);font-weight:800;line-height:1.1;animation:.18s ease-out both tasbih-count-pop;position:relative}.tasbih-tap-button__complete{z-index:1;color:var(--nm-primary-end);align-items:center;gap:4px;margin-top:5px;font-size:.82rem;font-weight:700;display:inline-flex;position:relative}.tasbih-tap-button__complete svg{width:16px;height:16px}.tasbih-tap-button__ripple{border:2px solid var(--nm-primary-end);pointer-events:none;border-radius:50%;width:28px;height:28px;animation:.42s ease-out both tasbih-ripple;position:absolute}.tasbih-reset-button{border:2px solid var(--nm-primary-end);width:52px;height:52px;color:var(--nm-primary-end);box-shadow:var(--nm-shadow-raised);background:#fff;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;bottom:1%;right:-2px}.tasbih-toggle-row{justify-content:space-evenly;align-items:center;gap:32px;min-height:62px;display:flex}.tasbih-toggle{background:color-mix(in srgb, var(--nm-primary-end) 5%, white);color:var(--nm-muted);box-shadow:var(--nm-shadow-inset)}.tasbih-toggle.is-on{background:color-mix(in srgb, var(--nm-primary-end) 14%, white);color:var(--nm-primary-end);box-shadow:var(--nm-shadow-raised)}.tasbih-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px 0 0;display:grid}.tasbih-primary-button,.tasbih-secondary-button{border:1px solid var(--nm-primary-end);border-radius:var(--nm-radius);min-height:52px;color:var(--nm-primary-end);text-align:center;justify-content:center;align-items:center;padding:8px 12px;font-size:.9rem;font-weight:800;display:inline-flex}.tasbih-primary-button{background:linear-gradient(110deg, var(--nm-primary-start), var(--nm-primary-end));color:#fff;box-shadow:var(--nm-primary-shadow)}.tasbih-secondary-button{background:#fff}.tasbih-primary-button:disabled{cursor:not-allowed;opacity:.5}.tasbih-collection{border:1px solid var(--nm-hairline);border-radius:var(--nm-radius);min-height:0;box-shadow:var(--nm-shadow-raised);background:#fff;position:relative;overflow:hidden}.tasbih-tabs{border-bottom:1px solid var(--nm-hairline);background:#f5faf6;grid-template-columns:repeat(2,minmax(0,1fr));padding:0 12px;display:grid}.tasbih-tabs button{min-height:58px;color:var(--nm-muted);font-size:.9rem;font-weight:700;position:relative}.tasbih-tabs button.is-active{color:var(--nm-primary-end)}.tasbih-tabs button.is-active:after{background:var(--nm-primary-end);content:"";border-radius:9999px 9999px 0 0;height:3px;position:absolute;bottom:0;left:12px;right:12px}.tasbih-collection__body{max-height:calc(100dvh - 215px);padding:12px 12px 86px;overflow-y:auto}.tasbih-dhikr-list,.tasbih-saved-list{gap:8px;padding:0;list-style:none;display:grid}.tasbih-dhikr-list__item{position:relative}.tasbih-dhikr-card{border:1px solid var(--nm-hairline);text-align:left;background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:78px;padding:10px 14px;display:flex;box-shadow:0 2px 6px #0d4a3614}.tasbih-dhikr-card__text{gap:2px;min-width:0;display:grid}.tasbih-dhikr-card__arabic,.tasbih-saved-card__arabic{color:var(--nm-text);font-family:var(--font-sans), "Noto Naskh Arabic", serif;text-align:left;font-size:clamp(1.1rem,4.5vw,1.45rem);font-weight:600;line-height:1.55}.tasbih-dhikr-card__name,.tasbih-saved-card__name{color:var(--nm-muted);font-size:.75rem;line-height:1.35}.tasbih-dhikr-card__target{color:var(--nm-text);font-variant-numeric:tabular-nums;flex:none;font-size:1.1rem;font-weight:700}.tasbih-delete-button{width:40px;min-width:40px;height:40px;color:var(--nm-muted)}.tasbih-delete-button svg{width:18px;height:18px}.tasbih-dhikr-card__delete{position:absolute;top:50%;right:8px;transform:translateY(-50%)}.tasbih-dhikr-list__item:has(.tasbih-dhikr-card__delete) .tasbih-dhikr-card{padding-right:58px}.tasbih-add-button{z-index:2;right:max(24px,50vw - 326px);bottom:calc(6.25rem + env(safe-area-inset-bottom));background:linear-gradient(110deg, var(--nm-primary-start), var(--nm-primary-end));color:#fff;width:60px;height:60px;box-shadow:var(--nm-primary-shadow);border:0;border-radius:50%;justify-content:center;align-items:center;font-size:2rem;line-height:1;display:inline-flex;position:fixed}.tasbih-saved-card{align-items:flex-start;gap:8px;padding:12px;display:flex}.tasbih-saved-card__resume{text-align:left;flex:1;gap:3px;min-width:0;display:grid}.tasbih-saved-card__count{color:var(--nm-primary-end);font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:800}.tasbih-saved-card time{color:var(--nm-muted);font-size:.75rem}.tasbih-empty-state{color:var(--nm-muted);text-align:center;padding:56px 10px}.tasbih-sheet-backdrop{z-index:80;padding:12px 12px max(12px, env(safe-area-inset-bottom));background:#10261966;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.tasbih-sheet{background:#fff;width:min(100%,520px);max-height:min(88dvh,700px);padding:16px;overflow-y:auto}.tasbih-sheet__heading{justify-content:space-between;align-items:center;gap:10px;min-height:44px;margin-bottom:12px;display:flex}.tasbih-sheet__heading h2{font-size:1.05rem;font-weight:800}.tasbih-add-form{gap:14px;display:grid}.tasbih-add-form label{color:var(--nm-text-heading);gap:5px;font-size:.85rem;font-weight:700;display:grid}.tasbih-add-form label>span{color:var(--nm-muted);font-weight:500;display:inline}.tasbih-add-form input,.tasbih-add-form textarea{border:1px solid var(--nm-hairline);width:100%;min-height:46px;color:var(--nm-text);font:inherit;background:#fff;border-radius:12px;padding:9px 12px}.tasbih-add-form textarea{min-height:96px;font-family:var(--font-sans), "Noto Naskh Arabic", serif;font-size:1.3rem}.tasbih-add-form__actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.tasbih-inline-error{color:var(--nm-primary-end);font-size:.8rem}.tasbih-toast{z-index:100;right:50%;bottom:calc(5.5rem + env(safe-area-inset-bottom));background:var(--nm-primary-end);color:#fff;max-width:calc(100vw - 32px);box-shadow:var(--nm-primary-shadow);border-radius:9999px;padding:10px 18px;font-size:.9rem;font-weight:700;position:fixed;transform:translate(50%)}@keyframes tasbih-count-pop{0%{transform:scale(.92)}65%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes tasbih-ripple{0%{opacity:.38;transform:scale(.6)}to{opacity:0;transform:scale(9)}}@media (min-width:640px){.tasbih-app{padding-left:20px;padding-right:20px}.tasbih-counter-card{padding:24px 24px 28px}}@media (max-height:720px){.tasbih-counter-card{min-height:0}.tasbih-counter-area{min-height:230px}.tasbih-counter-ring-wrap{width:min(65vw,300px)}}@media (prefers-reduced-motion:reduce){.tasbih-app *,.tasbih-app :before,.tasbih-app :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
