:root{font-family:Nunito,Segoe UI,sans-serif;font-size:18px;--brand-blue: #0E3485;--brand-teal: #10A295;--brand-gold: #E7A131;color:#132032;background:radial-gradient(circle at 20% 0%,#fff5de,#eaf0ff 55%,#e3f7f4)}*{box-sizing:border-box}html,body{width:100%;max-width:100%;overflow-x:hidden}body{margin:0;min-height:100vh}h1,h2,h3,h4,p{margin:0}p,h1,h2,h3,h4,label,button,span{overflow-wrap:anywhere}main,section,article,header,.box,.admin-item,.week-card,.modal,.verse-mini,.support-verse-item,.stack-chip,.btn,.icon-btn,.mini-btn{transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease}input,textarea,select{transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.app-shell>*:not(.topbar),.auth-shell>*{animation:sectionFade .32s ease both}.app-shell>*:not(.topbar):nth-child(2){animation-delay:40ms}.app-shell>*:not(.topbar):nth-child(3){animation-delay:80ms}.app-shell>*:not(.topbar):nth-child(4){animation-delay:.12s}.app-shell,.auth-shell{width:min(1100px,94vw);margin:0 auto;max-width:100%}.app-shell{padding:5.8rem 0 2.5rem}.auth-shell{padding:1.2rem 0 2.5rem}.auth-shell{min-height:100vh;display:grid;place-items:center}.auth-card,.week-card,.modal,.topbar,.admin-panel{background:#fff;border:1px solid #dde6ef;border-radius:20px;box-shadow:0 14px 32px rgba(6,33,66,.12);animation:fadeUp .28s ease-out}.auth-card{width:min(520px,100%);padding:1.2rem;display:grid;gap:.9rem}.topbar{position:fixed;top:.7rem;left:50%;z-index:1200;width:min(1100px,94vw);transform:translate(-50%);padding:.64rem .78rem;display:flex;justify-content:space-between;align-items:center;gap:.5rem;transition:transform .22s ease,padding .22s ease,border-radius .22s ease;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:topbarGlow 4.8s ease-in-out infinite}.topbar.hidden{transform:translate(-50%,-140%)}.topbar.compact{padding:.34rem .56rem;border-radius:12px}.topbar h1{color:var(--brand-blue);white-space:nowrap}.stack{display:grid;gap:.75rem}.field{display:grid;gap:.3rem}.field,.stack,.box,.verse-mini,.practice-advanced,.practice-editor,.support-verses,.support-verse-item,.row,.row.buttons,.dynamic-list,.dynamic-item,.week-card>*,.admin-item>*{min-width:0}label{font-weight:700}input,textarea,select,button{font:inherit}input,textarea,select{border:2px solid #cbd7e3;border-radius:12px;background:#fff;color:#162a40;padding:.7rem .8rem;width:100%}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--brand-blue);box-shadow:0 0 0 3px rgba(14,52,133,.15)}.btn{border:none;border-radius:12px;min-height:44px;padding:.55rem .9rem;cursor:pointer;font-weight:800;transition:transform .14s ease,box-shadow .14s ease,opacity .14s ease}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 8px 14px rgba(12,34,63,.12)}.primary{background:var(--brand-teal);color:#fff}.secondary{background:var(--brand-blue);color:#fff}.light{background:#e7ecf7;color:var(--brand-blue)}.danger{background:#a62a22;color:#fff}.error-box{border:1px solid #efb8b4;background:#ffe9e7;color:#7d231d;border-radius:10px;padding:.45rem .65rem;font-weight:700}.muted{color:#3d5375}.row{display:flex;gap:.6rem;align-items:center}.row.two>*{flex:1}.row.buttons{flex-wrap:wrap}.topbar .row.buttons{flex-wrap:nowrap}.badge{border-radius:999px;padding:.25rem .6rem;font-size:.82rem;font-weight:800}.badge.role{background:#d8ecff;color:var(--brand-blue)}.badge.active{background:#daf5f2;color:#0a675f}.badge.past{background:#eceff4;color:#4a5968}.badge.upcoming{background:var(--brand-gold);color:#fff}.badge.role{white-space:nowrap}.brand{display:flex;align-items:center;gap:.7rem}.topbar-brand{align-items:center;flex-direction:row;gap:.18rem;text-align:left;min-width:0;flex:1 1 auto}.topbar-brand h1{font-size:1.38rem;line-height:1;min-width:0}.brand-devo{color:var(--brand-blue)}.brand-fit{color:var(--brand-gold)}.brand-logo{width:40px;height:40px;display:block;object-fit:contain;animation:logoFloat 3.8s ease-in-out infinite}.auth-brand .brand-logo{width:46px;height:46px}.topbar-logo{width:70px;height:70px}.topbar.compact .topbar-logo{width:46px;height:46px}.topbar.compact h1{font-size:.94rem}.topbar-actions{margin-left:auto}.logout-btn{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:.45rem}.logout-icon{display:inline-block;width:16px;height:16px;border:2px solid currentColor;border-radius:999px;position:relative}.logout-icon:before{content:"";position:absolute;left:50%;top:-4px;width:2px;height:8px;border-radius:2px;background:currentColor;transform:translate(-50%)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.admin-panel{margin-top:1rem;padding:1rem;display:grid;gap:.8rem}.admin-list{display:grid;gap:.65rem}.admin-item{border:1px solid #d9e3ef;border-radius:12px;background:#f8fbff;padding:.75rem;display:flex;justify-content:space-between;align-items:center;gap:.7rem;transition:transform .16s ease,box-shadow .16s ease}.admin-item>*{min-width:0}.admin-item:hover{transform:translateY(-1px);box-shadow:0 8px 16px rgba(12,34,63,.1)}.week-carousel{margin-top:1rem;display:grid;gap:.5rem}.swipe-hint{display:flex;justify-content:center}.swipe-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.24rem .7rem;border-radius:999px;border:1px solid #d6e0f4;background:#f6f9ff;color:var(--brand-blue);font-size:.84rem;font-weight:800}.swipe-arrows{display:inline-flex;align-items:center;gap:.08rem}.swipe-arrows span{width:7px;height:7px;border-top:2px solid var(--brand-blue);border-right:2px solid var(--brand-blue);transform:rotate(45deg);opacity:.28;animation:swipePulse 1.2s ease-in-out infinite}.swipe-arrows span:nth-child(2){animation-delay:.14s}.swipe-arrows span:nth-child(3){animation-delay:.28s}.viewport-stack{position:relative;padding:0 .35rem .55rem;overflow:hidden}.stack-layer{position:absolute;left:18px;right:18px;border-radius:20px;border:1px solid #d6e1ee;background:#eef4fb;pointer-events:none}.stack-layer.layer-a{top:10px;bottom:16px;opacity:.86;z-index:1}.stack-layer.layer-b{top:20px;bottom:7px;opacity:.62;z-index:0}.viewport{position:relative;z-index:2;overflow:hidden;border-radius:22px;touch-action:pan-y;cursor:grab;width:100%;max-width:100%}.viewport:active{cursor:grabbing}.track{display:flex;width:100%;transition:transform .35s ease}.track.dragging{transition:none}.slide{min-width:100%;max-width:100%;padding:.25rem;overflow:hidden}.week-card{width:100%;max-width:100%;padding:1rem;display:grid;gap:.7rem;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.week-card:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(8,31,60,.15)}.box:hover,.verse-mini:hover,.support-verse-item:hover{transform:translateY(-1px)}.week-card h2{line-height:1.2}.week-meta{display:flex;justify-content:space-between;align-items:center;gap:.6rem}.box{border:1px solid #dce6f1;border-radius:12px;background:#f9fbff;padding:.7rem;display:grid;gap:.55rem}.accordion{gap:.5rem}.accordion-toggle{width:100%;border:1px solid #d8e4f0;border-radius:10px;background:#f3f8ff;color:#1d3553;display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.55rem .65rem;cursor:pointer;text-align:left}.accordion-toggle>span:first-child{display:grid;gap:.12rem}.accordion-chevron{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:999px;background:#dfebfb;font-weight:800}.progress-meta{display:flex;align-items:center;justify-content:space-between;font-weight:700;color:#3a516b}.progress-bar{width:100%;height:10px;border-radius:999px;background:#dfe7f1;overflow:hidden}.progress-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--brand-blue),var(--brand-teal));transition:width .22s ease}.ok-text{color:var(--brand-teal);font-weight:700}.check{display:grid;grid-template-columns:auto 1fr;gap:.5rem;align-items:start}.check input{width:1.2rem;height:1.2rem;margin-top:.1rem}.mini-btn{margin-left:.5rem;border:none;border-radius:8px;padding:.25rem .5rem;background:#e7ecf7;color:var(--brand-blue);cursor:pointer;font-weight:700;white-space:nowrap}.support-verses{display:grid;gap:.4rem}.support-verse-item{display:flex;align-items:center;justify-content:space-between;gap:.55rem;padding:.45rem .55rem;border:1px solid #d7e1ef;border-radius:10px;background:#f8fbff}.dynamic-list{display:grid;gap:.45rem}.dynamic-item{display:grid;grid-template-columns:1fr 44px;gap:.4rem}.practice-editor{border:1px solid #d8e2ef;border-radius:10px;background:#f8fbff;padding:.55rem}.practice-advanced{border:1px solid #d8e2ef;border-radius:10px;background:#f8fbff;padding:.55rem;display:grid;gap:.45rem}.icon-btn{border:none;border-radius:10px;background:#eaf0fa;color:#1f395d;font-weight:900;cursor:pointer}.icon-btn.add{height:40px;width:40px;justify-self:start}.verse-mini{border:1px solid #d8e3f1;border-radius:10px;padding:.55rem;background:#f8fbff;display:grid;gap:.4rem}.video-wrap{border-radius:12px;overflow:hidden;border:1px solid #d5e0ee;background:#000}.video-wrap iframe{width:100%;aspect-ratio:16 / 9;border:0;display:block}.stack-indicators{margin-top:.6rem;display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.stack-chip{border:1px solid #cbd9ea;border-radius:999px;background:#eef3fb;color:#24456f;padding:.3rem .6rem;font-weight:800;cursor:pointer}.stack-chip.active{border-color:var(--brand-blue);background:#dde6fa}.stack-chip:not(.active):hover{transform:translateY(-1px)}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes swipePulse{0%{opacity:.22;transform:translate(-5px) rotate(45deg)}50%{opacity:1}to{opacity:.22;transform:translate(5px) rotate(45deg)}}@keyframes sectionFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-1.5px)}}@keyframes topbarGlow{0%,to{box-shadow:0 14px 32px rgba(6,33,66,.12)}50%{box-shadow:0 18px 36px rgba(6,33,66,.16)}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:rgba(10,21,34,.4);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:grid;place-items:center;padding:1rem}.modal{width:min(760px,100%);max-height:90vh;overflow:auto;padding:1rem;display:grid;gap:.8rem}.modal-wide{width:min(920px,100%)}.verse-list{display:grid;gap:.55rem;border:1px solid #dbe5f1;border-radius:12px;padding:.7rem;max-height:55vh;overflow:auto;background:#f8fbff}.verse-list p{padding:.22rem .35rem;border-radius:8px}.verse-highlight{background:#fff3d9;border-left:3px solid var(--brand-gold)}@media(max-width:1024px){.app-shell,.auth-shell{width:min(100%,96vw)}.app-shell{padding:5.4rem 0 2rem}.auth-shell{padding:1rem 0 2rem}.topbar{padding:.56rem .68rem}.admin-item{align-items:flex-start}}@media(max-width:760px){:root{font-size:17px}.app-shell,.auth-shell{width:100%}.app-shell{padding:5rem .6rem 1.5rem}.auth-shell{padding:.8rem .6rem 1.5rem}.auth-card,.week-card,.topbar,.admin-panel{border-radius:16px}.auth-card,.admin-panel,.week-card{padding:.85rem}.topbar{top:.45rem;width:calc(100% - 1.2rem);align-items:center;gap:.45rem;padding:.46rem .56rem}.topbar-brand{gap:.35rem}.admin-item{flex-direction:column;align-items:flex-start}.topbar .brand{min-width:0;gap:.45rem}.topbar-brand h1{font-size:1.08rem;white-space:normal}.topbar-logo{width:48px;height:48px}.topbar.compact .topbar-logo{width:34px;height:34px}.topbar .row.buttons{width:auto;gap:0;flex:0 0 auto}.admin-item .row.buttons{width:100%}.topbar .row.buttons .btn{width:auto;min-height:38px;min-width:38px;padding:.35rem}.admin-item .row.buttons .btn{width:100%}.accordion-toggle,.support-verse-item,.progress-meta{align-items:flex-start}.accordion-toggle,.progress-meta,.support-verse-item,.topbar,.week-meta{gap:.45rem}.accordion-toggle,.progress-meta{flex-direction:column}.row.two{flex-direction:column;align-items:stretch}.row.two>*{width:100%}.week-meta{flex-direction:column;align-items:flex-start;gap:.35rem}.mini-btn{margin-left:0;margin-top:.5rem;display:inline-block}.support-verse-item{flex-direction:column;align-items:flex-start}.support-verse-item .mini-btn,.week-meta .mini-btn{width:100%;text-align:center}.dynamic-item{grid-template-columns:1fr 40px}.practice-advanced .row.buttons{flex-direction:column;align-items:stretch}.practice-advanced .row.buttons>*{width:100%}.modal-backdrop{padding:.55rem}.modal{width:100%;max-height:94vh;border-radius:16px 16px 0 0;padding:.85rem}.verse-list{max-height:48vh}.swipe-pill{font-size:.78rem}.week-carousel{gap:.45rem}.viewport-stack{padding-inline:0}.slide{padding:.12rem 0}.week-card{border-radius:15px}}@media(max-width:560px){:root{font-size:16px}.btn{min-height:42px;padding:.5rem .72rem}.auth-card,.admin-panel,.week-card,.box,.verse-mini,.practice-advanced,.practice-editor{padding-inline:.72rem}.badge{font-size:.76rem}.progress-meta{font-size:.9rem}.stack-indicators{justify-content:flex-start;overflow-x:auto;padding-bottom:.2rem;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.stack-chip{flex:0 0 auto;white-space:nowrap}.viewport-stack{padding:0 .1rem .45rem}.slide{padding:.08rem 0}.stack-layer{left:10px;right:10px}.check{grid-template-columns:1.05rem 1fr;gap:.45rem}.check input{width:1.05rem;height:1.05rem}}@media(max-width:420px){.app-shell,.auth-shell{padding-inline:.45rem}.topbar{top:.35rem;width:calc(100% - .8rem);padding:.38rem .42rem;gap:.35rem}.topbar h1{font-size:.88rem}.topbar .badge.role{display:none}.topbar-logo{width:40px;height:40px}.topbar.compact .topbar-logo{width:30px;height:30px}.logout-btn{min-width:36px;min-height:36px;padding:.3rem}.week-card h2{font-size:1.15rem}.box{padding:.58rem}.week-card,.box,.practice-advanced,.verse-mini,.support-verse-item{width:100%;max-width:100%}.accordion-toggle,.support-verse-item,.practice-advanced,.verse-mini{padding:.5rem}}@media(max-width:360px){:root{font-size:15px}.app-shell,.auth-shell{padding-inline:.35rem}.topbar-brand h1{font-size:.8rem}.btn,.topbar .row.buttons .btn{min-height:36px;min-width:36px}.stack-chip{padding:.28rem .52rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}
