:root{--color-bg:#faf8f5;--color-surface:#fff;--color-primary:#1b5e4b;--color-primary-light:#2d8b6f;--color-primary-dark:#0f3d30;--color-accent:#c9a227;--color-accent-light:#e8d48b;--color-text:#1a1a1a;--color-text-muted:#6b7280;--color-border:#e5e7eb;--color-done-bg:#ecfdf5;--color-done-border:#6ee7b7;--color-pending-bg:#fff;--color-danger:#ef4444;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-full:9999px;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 16px #00000014;--shadow-lg:0 8px 32px #0000001f;--safe-bottom:env(safe-area-inset-bottom,0px);--header-height:56px;--bottom-bar-height:72px;color:var(--color-text);background-color:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{background:var(--color-bg)}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select{font-family:inherit}.app{background:var(--color-bg);flex-direction:column;max-width:480px;height:100%;margin:0 auto;display:flex;position:relative}.header{padding:12px 20px;padding-top:max(12px, env(safe-area-inset-top));background:var(--color-primary);color:#fff;min-height:var(--header-height);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.header__title{letter-spacing:-.02em;font-size:1.1rem;font-weight:600}.header__subtitle{opacity:.8;margin-top:2px;font-size:.75rem}.header__nav-btn{color:#fff;opacity:.9;border-radius:var(--radius-sm);padding:8px;font-size:.85rem;font-weight:500;transition:opacity .2s}.header__nav-btn:active{opacity:.6}.toast{top:calc(var(--header-height) + env(safe-area-inset-top,0px) + 8px);background:var(--color-primary-dark);color:#fff;border-radius:var(--radius-full);z-index:150;box-shadow:var(--shadow-md);text-align:center;max-width:90%;padding:10px 16px;font-size:.8rem;position:fixed;left:50%;transform:translate(-50%)}.filter-bar{background:var(--color-bg);flex-shrink:0;gap:8px;padding:12px 16px;display:flex}.filter-bar__btn{border-radius:var(--radius-full);color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);flex:1;padding:8px 12px;font-size:.8rem;font-weight:500;transition:all .2s}.filter-bar__btn--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.stats-bar{flex-shrink:0;justify-content:center;gap:24px;padding:4px 16px 12px;display:flex}.counter-section{flex-shrink:0;padding:0 16px 12px}.counters-page{padding:16px 0 calc(24px + var(--safe-bottom));-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.counters-page .counter-section{padding-top:0}.counter-section__header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.counter-section__title{text-transform:uppercase;letter-spacing:.08em;color:var(--color-primary);font-size:.75rem;font-weight:600}.counter-section__add{color:var(--color-primary);border-radius:var(--radius-full);background:#1b5e4b14;padding:4px 10px;font-size:.8rem;font-weight:600}.counter-section__empty{background:var(--color-surface);border-radius:var(--radius-md);border:1px dashed var(--color-border);text-align:center;padding:16px}.counter-section__empty p{color:var(--color-text-muted);font-size:.8rem;line-height:1.5}.counter-list{flex-direction:column;gap:10px;display:flex}.counter-card{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);align-items:center;gap:12px;padding:14px 16px;display:flex}.counter-card__main{flex:1;min-width:0}.counter-card__name{color:var(--color-text);margin-bottom:4px;font-size:.95rem;font-weight:600}.counter-card__days{align-items:baseline;gap:4px;margin-bottom:2px;display:flex}.counter-card__count{color:var(--color-primary);font-size:1.75rem;font-weight:700;line-height:1}.counter-card__unit{color:var(--color-primary-light);font-size:.85rem;font-weight:500}.counter-card__since{color:var(--color-text-muted);font-size:.72rem}.counter-card__actions{flex-direction:column;flex-shrink:0;gap:6px;display:flex}.counter-card__notif-btn{border-radius:var(--radius-sm);opacity:.4;padding:6px;font-size:1.1rem;transition:opacity .2s}.counter-card__notif-btn--on{opacity:1}.counter-card__delete{color:var(--color-text-muted);border-radius:var(--radius-sm);padding:4px 8px;font-size:1.2rem;line-height:1}.counter-card__delete:active{color:var(--color-danger)}.form-hint{color:var(--color-text-muted);margin-top:8px;font-size:.75rem;line-height:1.4}.stats-bar__item{text-align:center}.stats-bar__value{color:var(--color-primary);font-size:1.25rem;font-weight:700}.stats-bar__label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}.todo-list{padding:0 16px calc(140px + var(--safe-bottom));-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.group-section{margin-bottom:20px}.group-section__title{text-transform:uppercase;letter-spacing:.08em;color:var(--color-primary);margin-bottom:8px;padding-left:4px;font-size:.75rem;font-weight:600}.todo-item{border-radius:var(--radius-md);background:var(--color-pending-bg);border:1.5px solid var(--color-border);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;align-items:center;gap:12px;margin-bottom:8px;padding:14px 16px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.todo-item:active{transform:scale(.98)}.todo-item--done{background:var(--color-done-bg);border-color:var(--color-done-border)}.todo-item__check{border-radius:var(--radius-full);border:2px solid var(--color-border);flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;transition:all .25s;display:flex}.todo-item--done .todo-item__check{background:var(--color-primary);border-color:var(--color-primary)}.todo-item__check-icon{color:#fff;opacity:0;font-size:14px;transition:all .25s;transform:scale(.5)}.todo-item--done .todo-item__check-icon{opacity:1;transform:scale(1)}.todo-item__content{flex:1;min-width:0}.todo-item__title{font-size:.95rem;font-weight:500;transition:all .25s}.todo-item--done .todo-item__title{color:var(--color-text-muted);opacity:.75;text-decoration:line-through}.todo-item__badges{gap:6px;margin-top:4px;display:flex}.todo-item__badge{border-radius:var(--radius-full);padding:2px 6px;font-size:.65rem;font-weight:500}.todo-item__badge--routine{color:var(--color-primary);background:#1b5e4b1a}.todo-item__badge--reminder{color:#92710a;background:#c9a22726}.bottom-bar{bottom:calc(52px + var(--safe-bottom));z-index:10;background:0 0;border-top:none;flex-shrink:0;width:100%;max-width:480px;padding:12px 20px;position:fixed;left:50%;transform:translate(-50%)}.add-btn{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-light));color:#fff;border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-md);padding:14px;font-size:1rem;font-weight:600;transition:transform .2s,box-shadow .2s}.add-btn:active{box-shadow:var(--shadow-sm);transform:scale(.97)}.modal-overlay{z-index:100;background:#00000080;justify-content:center;align-items:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-sheet{background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;flex-direction:column;width:100%;max-width:480px;max-height:85dvh;animation:.3s cubic-bezier(.4,0,.2,1) slideUp;display:flex;overflow:hidden}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-sheet__header{border-bottom:1px solid var(--color-border);align-items:center;gap:12px;padding:16px 20px;display:flex}.modal-sheet__back{border-radius:var(--radius-full);background:var(--color-bg);width:32px;height:32px;color:var(--color-text);justify-content:center;align-items:center;font-size:1.1rem;display:flex}.modal-sheet__title{flex:1;font-size:1rem;font-weight:600}.modal-sheet__close{border-radius:var(--radius-full);background:var(--color-bg);width:32px;height:32px;color:var(--color-text-muted);justify-content:center;align-items:center;font-size:1.2rem;display:flex}.modal-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:env(safe-area-inset-bottom,0px);flex:1;overflow:hidden auto}.modal-panel-content{box-sizing:border-box;width:100%;padding:20px}.modal-panel-content--forward{animation:.35s cubic-bezier(.4,0,.2,1) slideInForward}.modal-panel-content--back{animation:.35s cubic-bezier(.4,0,.2,1) slideInBack}@keyframes slideInForward{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes slideInBack{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}.choice-cards{flex-direction:column;gap:12px;display:flex}.choice-card{border-radius:var(--radius-md);border:1.5px solid var(--color-border);background:var(--color-bg);text-align:left;align-items:center;gap:16px;padding:20px;transition:all .2s;display:flex}.choice-card:active{border-color:var(--color-primary);background:#1b5e4b0d}.choice-card__icon{border-radius:var(--radius-md);background:var(--color-primary);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.3rem;display:flex}.choice-card__text h3{margin-bottom:2px;font-size:.95rem;font-weight:600}.choice-card__text p{color:var(--color-text-muted);font-size:.8rem}.group-list{flex-direction:column;gap:8px;display:flex}.group-list__item{border-radius:var(--radius-md);border:1.5px solid var(--color-border);background:var(--color-bg);text-align:left;padding:16px;font-size:.95rem;font-weight:500;transition:all .2s}.group-list__item:active{border-color:var(--color-primary);background:#1b5e4b0d}.form-group{margin-bottom:20px}.form-group label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-size:.8rem;font-weight:600;display:block}.form-input{border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);box-sizing:border-box;width:100%;max-width:100%;padding:14px 16px;font-size:16px;transition:border-color .2s}.form-input:focus{border-color:var(--color-primary);outline:none}.toggle-group{gap:8px;display:flex}.toggle-btn{border-radius:var(--radius-md);border:1.5px solid var(--color-border);color:var(--color-text-muted);background:var(--color-bg);flex:1;padding:12px;font-size:.85rem;font-weight:500;transition:all .2s}.toggle-btn--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.submit-btn{background:var(--color-primary);color:#fff;border-radius:var(--radius-md);width:100%;margin-top:8px;padding:14px;font-size:1rem;font-weight:600;transition:opacity .2s}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.submit-btn:active:not(:disabled){opacity:.85}.history-page{padding:16px;padding-bottom:calc(70px + var(--safe-bottom));-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.history-nav{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.history-nav__btn{border-radius:var(--radius-full);background:var(--color-surface);border:1px solid var(--color-border);padding:8px 16px;font-size:.85rem;font-weight:500}.history-nav__label{color:var(--color-primary);font-size:.9rem;font-weight:600}.history-summary{grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:24px;display:grid}.history-summary__card{background:var(--color-surface);border-radius:var(--radius-md);text-align:center;border:1px solid var(--color-border);box-shadow:var(--shadow-sm);padding:16px 12px}.history-summary__value{font-size:1.5rem;font-weight:700}.history-summary__value--success{color:var(--color-primary)}.history-summary__value--danger{color:var(--color-danger)}.history-summary__label{color:var(--color-text-muted);margin-top:4px;font-size:.7rem}.empty-state{text-align:center;color:var(--color-text-muted);padding:48px 24px}.empty-state__icon{opacity:.5;margin-bottom:12px;font-size:3rem}.empty-state__text{font-size:.9rem}.loading{color:var(--color-text-muted);justify-content:center;align-items:center;padding:48px;display:flex}.spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.prayer-times-bar{-webkit-overflow-scrolling:touch;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;gap:4px;padding:8px 12px;display:flex;overflow-x:auto}.prayer-times-bar__item{text-align:center;flex:none;min-width:52px;padding:4px 8px}.prayer-times-bar__label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.6rem;display:block}.prayer-times-bar__time{color:var(--color-primary);font-size:.75rem;font-weight:600;display:block}.todo-item__title-row{align-items:flex-start;gap:8px;display:flex}.todo-item__info{opacity:.7;flex-shrink:0;padding:2px 4px;font-size:.85rem;line-height:1}.todo-item__info:active{opacity:1}.info-overlay{z-index:200;background:#00000073;justify-content:center;align-items:center;padding:24px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.info-modal{background:var(--color-surface);border-radius:var(--radius-lg);width:100%;max-width:360px;box-shadow:var(--shadow-lg);padding:24px;animation:.25s slideUp}.info-modal__header{align-items:center;gap:10px;margin-bottom:12px;display:flex}.info-modal__icon{font-size:1.2rem}.info-modal__title{color:var(--color-primary);font-size:1rem;font-weight:600}.info-modal__body{color:var(--color-text);margin-bottom:20px;font-size:.9rem;line-height:1.6}.welcome-modal{text-align:center}.welcome-modal__illustration{width:100%;max-width:200px;height:auto;margin:0 auto 12px;display:block}.welcome-modal__label{text-transform:uppercase;letter-spacing:.1em;color:var(--color-primary);border-radius:var(--radius-full);background:#1b5e4b14;margin-bottom:16px;padding:4px 12px;font-size:.7rem;font-weight:600;display:inline-block}.welcome-modal__quote{color:var(--color-text);text-align:center;margin:0 0 20px;font-size:.95rem;font-style:italic;line-height:1.65}.info-modal__close-btn{background:var(--color-primary);color:#fff;border-radius:var(--radius-md);width:100%;padding:12px;font-size:.95rem;font-weight:600}.prayer-prompt{background:var(--color-surface);border-radius:var(--radius-lg);text-align:center;width:100%;max-width:340px;box-shadow:var(--shadow-lg);padding:28px 24px;animation:.25s slideUp}.prayer-prompt__icon{margin-bottom:8px;font-size:2.5rem}.prayer-prompt__title{color:var(--color-primary);margin-bottom:8px;font-size:1.2rem;font-weight:700}.prayer-prompt__text{color:var(--color-text-muted);margin-bottom:20px;font-size:.9rem}.prayer-prompt__actions{flex-direction:column;gap:10px;display:flex}.prayer-prompt__btn{border-radius:var(--radius-md);padding:14px;font-size:1rem;font-weight:600}.prayer-prompt__btn--yes{background:var(--color-primary);color:#fff}.prayer-prompt__btn--no{background:var(--color-bg);color:var(--color-text-muted);border:1.5px solid var(--color-border)}.form-textarea{resize:vertical;min-height:80px;line-height:1.5}.history-tabs{flex-shrink:0;gap:8px;padding:12px 16px 0;display:flex}.history-tabs__btn{border-radius:var(--radius-full);color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);flex:1;padding:8px;font-size:.85rem;font-weight:500}.history-tabs__btn--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.prayer-today{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:20px;padding:14px 16px}.prayer-today__title{color:var(--color-primary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px;font-size:.85rem;font-weight:600}.prayer-today__row{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.prayer-today__row:last-child{border-bottom:none;padding-bottom:0}.prayer-today__row--done{opacity:.75}.prayer-today__info{flex-direction:column;gap:2px;display:flex}.prayer-today__name{font-size:.95rem;font-weight:600}.prayer-today__time{color:var(--color-text-muted);font-size:.75rem}.prayer-today__status{color:var(--color-primary);font-size:.8rem;font-weight:600}.prayer-today__status--pending{color:var(--color-text-muted);font-weight:500}.prayer-today__btn{background:var(--color-primary);color:#fff;border-radius:var(--radius-full);cursor:pointer;white-space:nowrap;border:none;padding:8px 14px;font-size:.8rem;font-weight:600}.prayer-today__btn:disabled{opacity:.6}.prayer-log-day{margin-bottom:24px}.prayer-log-day__title{color:var(--color-primary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px;font-size:.85rem;font-weight:600}.prayer-log-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:8px;padding:14px 16px}.prayer-log-card__name{margin-bottom:4px;font-size:.95rem;font-weight:600}.prayer-log-card__detail{color:var(--color-text);margin-bottom:6px;font-size:.85rem;line-height:1.5}.prayer-log-card__meta{color:var(--color-text-muted);font-size:.75rem}.notification-setup__status{border-radius:var(--radius-md);margin-bottom:12px;padding:12px;font-size:.9rem;font-weight:500;line-height:1.5}.notification-setup__status--granted{background:var(--color-done-bg);color:var(--color-primary)}.notification-setup__status--default{color:#92710a;background:#c9a2271f}.notification-setup__status--denied,.notification-setup__status--insecure,.notification-setup__status--ios-needs-install,.notification-setup__status--unsupported{color:#b91c1c;background:#fef2f2}.notification-setup__hint{color:var(--color-text-muted);margin-bottom:16px;font-size:.85rem;line-height:1.6}.notification-setup__result{color:var(--color-primary);margin-bottom:12px;font-size:.85rem;font-weight:500}.notification-setup__actions{flex-direction:column;gap:10px;display:flex}.notification-setup__actions .info-modal__close-btn{background:var(--color-bg);color:var(--color-text-muted);border:1.5px solid var(--color-border)}.admin-page{background:var(--color-bg);min-height:100vh;padding:24px 16px calc(24px + var(--safe-bottom))}.admin-header{justify-content:space-between;align-items:flex-start;gap:16px;max-width:560px;margin:0 auto 20px;display:flex}.admin-header__title{color:var(--color-primary-dark);font-size:1.35rem;font-weight:700}.admin-header__subtitle{color:var(--color-text-muted);margin-top:4px;font-size:.85rem}.admin-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);max-width:560px;box-shadow:var(--shadow-md);margin:0 auto;padding:24px}.admin-card--narrow{margin-top:10vh}.admin-card__title{margin-bottom:6px;font-size:1.1rem;font-weight:700}.admin-card__subtitle{color:var(--color-text-muted);margin-bottom:20px;font-size:.85rem;line-height:1.5}.admin-form{flex-direction:column;gap:16px;display:flex}.admin-field{flex-direction:column;gap:6px;font-size:.85rem;font-weight:500;display:flex}.admin-field input,.admin-field textarea{border:1.5px solid var(--color-border);border-radius:var(--radius-md);width:100%;font:inherit;background:var(--color-bg);color:var(--color-text);padding:12px 14px}.admin-field textarea{resize:vertical;min-height:100px}.admin-btn{border-radius:var(--radius-md);font:inherit;cursor:pointer;border:none;padding:12px 18px;font-weight:600}.admin-btn--primary{background:var(--color-primary);color:#fff}.admin-btn--primary:disabled{opacity:.55;cursor:not-allowed}.admin-btn--ghost{color:var(--color-text-muted);border:1.5px solid var(--color-border);white-space:nowrap;background:0 0}.admin-error{color:#b91c1c;font-size:.85rem;line-height:1.5}.admin-success{color:var(--color-primary);font-size:.85rem;font-weight:600}.admin-btn--danger{background:var(--color-danger);color:#fff;flex-shrink:0;padding:8px 14px;font-size:.85rem}.admin-btn--danger:disabled{opacity:.6}.admin-log-list{flex-direction:column;gap:10px;max-height:420px;display:flex;overflow-y:auto}.admin-log-item{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);align-items:flex-start;gap:12px;padding:12px;display:flex}.admin-log-item__main{flex:1;min-width:0}.admin-log-item__title{margin-bottom:4px;font-size:.9rem;font-weight:600}.admin-log-item__detail{color:var(--color-text);margin-bottom:4px;font-size:.82rem;line-height:1.5}.admin-log-item__meta{color:var(--color-text-muted);font-size:.75rem}
