@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Source+Sans+3:wght@400;500;600;700&display=swap";:root{--color-ivory: #f5f1e8;--color-sand: #d9ccb8;--color-olive: #9fb48d;--color-ink: #24303a;--color-night: #10161b;--color-panel: rgba(255, 255, 255, .1);--shadow-soft: 0 24px 60px rgba(16, 22, 27, .24);--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px);font-family:"Source Sans 3",sans-serif;color:var(--color-ivory);color-scheme:light dark;background:radial-gradient(circle at top left,rgba(127,151,168,.18),transparent 34%),radial-gradient(circle at top right,rgba(159,180,141,.16),transparent 28%),linear-gradient(180deg,#24303a,#182026)}*{box-sizing:border-box}html,body,#root{min-height:100vh;min-height:100dvh}body{margin:0;background:transparent;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}input{font:inherit}button{border:1px solid rgba(245,241,232,.18);border-radius:999px;padding:.8rem 1.2rem;font:inherit;color:inherit;background:#f5f1e81f;cursor:pointer}button:disabled{opacity:.6;cursor:not-allowed}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Cormorant Garamond,serif}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;color:var(--color-sand)}.muted{color:#f5f1e8bd}.error-text{color:#ffd0d0}.public-layout{min-height:100vh;min-height:100dvh;color:var(--color-ivory);background:linear-gradient(180deg,#24303aeb,#182026e0),linear-gradient(180deg,#fbf8f2,#e9e1d2)}.public-topbar{position:sticky;top:0;z-index:10;display:grid;padding-top:var(--safe-area-top);isolation:isolate}.public-topbar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:#10161b8f;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(245,241,232,.08)}.theme-dark{background:linear-gradient(180deg,#10161bfa,#10161bf0),var(--color-night)}.public-header{position:relative;display:flex;justify-content:space-between;gap:1rem;padding:1rem calc(4rem + var(--safe-area-right)) 1rem calc(1.2rem + var(--safe-area-left));background:transparent}.public-header-main{display:flex;align-items:center;gap:1rem}.public-header-copy{display:grid;gap:.35rem;min-width:0}.public-logo{width:3.5rem;height:3.5rem;border-radius:0;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(16,22,27,.28))}.public-logo-button{display:grid;place-items:center;padding:0;border:0;background:transparent;box-shadow:none}.public-logo-button:disabled{opacity:1}.public-header h1{font-size:clamp(2.2rem,4vw,3.2rem)}.public-header-meta{display:grid;align-content:start;justify-items:end;gap:.25rem;text-align:right;min-width:0}.public-header-daytitle{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;max-width:34ch;font-size:.92em;line-height:1.3;overflow-wrap:anywhere}.public-header-refresh,.public-header-toggle{position:absolute;display:grid;place-items:center;width:2.35rem;height:2.35rem;padding:0;border-radius:999px;line-height:0;background:#f5f1e81f}.public-header-refresh{top:3.8rem;right:calc(1.2rem + var(--safe-area-right))}.public-header-toggle{top:.9rem;right:calc(1.2rem + var(--safe-area-right))}.public-header-toggle-icon{width:.95rem;height:.95rem}.public-header-toggle-icon.is-collapsed{transform:rotate(180deg)}.public-header.public-header-static{align-items:start}.public-controls,.public-footer{display:flex;justify-content:center;gap:.7rem;padding:1rem calc(1.2rem + var(--safe-area-right)) 1rem calc(1.2rem + var(--safe-area-left))}.public-controls{flex-wrap:nowrap;align-items:center;width:max-content;max-width:calc(100vw - 2.4rem);margin:0 auto;padding:.45rem;border-radius:999px;background:#10161bd1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(245,241,232,.1);box-shadow:0 10px 22px #10161b2e}.public-status-banner{width:min(52rem,calc(100% - 2.4rem - var(--safe-area-left) - var(--safe-area-right)));margin:.75rem auto 0;padding:.72rem 1rem;border:1px solid rgba(245,241,232,.14);border-radius:18px;background:#9fb48d2e;color:var(--color-ivory);text-align:center;font-size:.92rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.public-status-banner.is-subtle{background:#f5f1e814}.public-controls button{min-width:2.9rem;width:auto;padding:.42rem .72rem;border-radius:999px;font-size:.92rem;white-space:nowrap;background:#f5f1e81a}.public-view-switch{display:inline-flex;gap:.25rem;margin:.65rem auto 0;padding:.3rem;border-radius:999px;background:#10161bd1;border:1px solid rgba(245,241,232,.12);box-shadow:0 12px 24px #10161b38;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.public-view-switch-button{min-width:4.6rem;padding:.5rem 1rem;border:0;border-radius:999px;background:transparent;color:#f5f1e8c7;font-size:.92rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background .16s ease,color .16s ease,transform .16s ease}.public-view-switch-button:hover{color:var(--color-ivory)}.public-view-switch-button.is-active{background:#9fb48deb;color:var(--color-night);box-shadow:0 4px 12px #0000002e}.public-liturgy-block,.public-intentions-block{max-width:52rem;margin:0 auto;padding:1.6rem;border-radius:28px;background:var(--color-panel);box-shadow:var(--shadow-soft);line-height:1.75}.public-liturgy-block .eyebrow,.public-intentions-block .eyebrow{font-size:.85rem;letter-spacing:.18em;text-transform:uppercase;color:#f5f1e89e;margin-bottom:.45rem}.public-liturgy-daytitle{margin:0 0 .9rem;padding-bottom:.7rem;border-bottom:1px solid rgba(245,241,232,.14);font-size:.9rem;font-weight:600;letter-spacing:.06em;line-height:1.45;color:#f5f1e8c7}.public-liturgy-reference{margin:0 0 1rem;font-style:italic;font-weight:500;color:#f5f1e8d6}.public-liturgy-text{font-size:inherit;line-height:1.8}.public-liturgy-text>*:first-child{margin-top:0}.public-intentions-list{list-style:none;counter-reset:intention;margin:0;padding:0;display:grid;gap:1.1rem}.public-intentions-item{position:relative;padding:.5rem 0 .5rem 2.6rem;counter-increment:intention}.public-intentions-item:before{content:counter(intention);position:absolute;left:0;top:.35rem;display:grid;place-items:center;width:2rem;height:2rem;border-radius:999px;background:#9fb48d38;color:var(--color-ivory);font-weight:700;font-size:.85rem}.public-intentions-text>*:first-child{margin-top:0}.public-intentions-text>*:last-child{margin-bottom:0}.public-refresh-button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem}.public-refresh-icon{width:1rem;height:1rem;flex:0 0 auto}.public-refresh-button:disabled .public-refresh-icon{opacity:.72}.public-topbar.is-collapsed .public-header{min-height:4.25rem;padding:.85rem calc(6rem + var(--safe-area-right)) .85rem calc(1rem + var(--safe-area-left));align-items:center}.public-topbar.is-collapsed .eyebrow,.public-topbar.is-collapsed .public-header-meta,.public-topbar.is-collapsed .public-header-copy .muted{display:none}.public-topbar.is-collapsed .public-header-main{width:100%;min-width:0;justify-content:flex-start;align-items:center;gap:.7rem}.public-topbar.is-collapsed .public-logo{width:2.4rem;height:2.4rem;filter:none}.public-topbar.is-collapsed .public-header-copy{width:100%;min-width:0;justify-items:start;text-align:left}.public-topbar.is-collapsed .public-header h1{font-size:clamp(1.2rem,4.2vw,1.8rem);line-height:1.15;max-width:100%;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.public-topbar.is-collapsed .public-header-refresh,.public-topbar.is-collapsed .public-header-toggle{top:50%;transform:translateY(-50%);width:2.1rem;height:2.1rem}.public-topbar.is-collapsed .public-header-refresh{right:calc(3.65rem + var(--safe-area-right))}.public-song{padding:.5rem calc(1.2rem + var(--safe-area-right)) calc(6rem + var(--safe-area-bottom)) calc(1.2rem + var(--safe-area-left));touch-action:pan-y pinch-zoom}.public-song article{max-width:52rem;margin:0 auto;padding:1.6rem;border-radius:28px;background:var(--color-panel);box-shadow:var(--shadow-soft);line-height:1.75}.public-song h1,.public-song h2{margin-bottom:0}.song-rendered-author{margin:-.65rem 0 .15rem;font-size:.72rem;line-height:1.35;color:#f5f1e8b8}.song-rendered-author+*{margin-top:0}.public-library{width:min(72rem,calc(100% - 2.4rem - var(--safe-area-left) - var(--safe-area-right)));margin:0 auto;padding:.6rem 0 calc(3rem + var(--safe-area-bottom));display:grid;grid-template-columns:minmax(0,20rem) minmax(0,1fr);gap:1rem;align-items:start}.public-library.public-library-search-only{grid-template-columns:minmax(0,32rem);justify-content:center}.public-library.public-library-reader-only{grid-template-columns:minmax(0,1fr);width:min(52rem,calc(100% - 2.4rem - var(--safe-area-left) - var(--safe-area-right)))}.public-library-panel{padding:1.1rem;border:1px solid rgba(245,241,232,.1);border-radius:18px;background:#10161b7a;box-shadow:var(--shadow-soft)}.public-library-search{position:sticky;top:calc(7.6rem + var(--safe-area-top));display:grid;gap:.9rem}.public-library-search-head{display:flex;align-items:start;justify-content:space-between;gap:1rem}.public-library-auth-button{flex:0 0 auto;white-space:nowrap}.public-library-search-head h2,.public-library-placeholder h2{font-size:clamp(1.7rem,3vw,2.25rem)}.public-library-search-field{display:grid;gap:.45rem}.public-library-search-label{font-size:.82rem;color:var(--color-sand)}.public-library-search-field input{width:100%;padding:.82rem .95rem;border:1px solid rgba(245,241,232,.16);border-radius:8px;color:var(--color-ivory);background:#f5f1e814}.public-library-search-field input::placeholder{color:#f5f1e87a}.public-library-feedback{min-height:1.2rem}.public-library-results{list-style:none;display:grid;gap:.55rem;margin:0;padding:0}.public-library-results-sentinel{height:1px}.public-library-result{width:100%;display:grid;justify-items:start;gap:.2rem;padding:.85rem .95rem;border-radius:8px;text-align:left;background:#f5f1e814}.public-library-result.is-active{background:#9fb48d3d;border-color:#9fb48d57}.public-library-result-snippet{font-size:.88rem;color:#f5f1e8bd}.public-library-reader{display:grid;gap:.9rem;min-height:22rem}.public-library-reader-actions{display:flex;flex-wrap:wrap;gap:.55rem}.public-library-reader-actions button{min-width:0;padding:.55rem .8rem}.public-library-song{padding:1.6rem;border-radius:18px;background:var(--color-panel);box-shadow:var(--shadow-soft);line-height:1.75}.public-library-song h1,.public-library-song h2{margin-bottom:0}.public-qr-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:calc(1.25rem + var(--safe-area-top)) calc(1.25rem + var(--safe-area-right)) calc(1.25rem + var(--safe-area-bottom)) calc(1.25rem + var(--safe-area-left));background:#10161bb8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.public-qr-card{width:min(20rem,100%);display:grid;gap:.65rem;justify-items:center;padding:1rem;border:1px solid rgba(245,241,232,.12);border-radius:24px;background:#24303af5;box-shadow:var(--shadow-soft)}.public-qr-image{width:100%;max-width:16rem;color:var(--color-ink)}.public-qr-image svg{display:block;width:100%;height:auto;border-radius:18px;background:var(--color-ivory)}.public-qr-url{width:100%;font-size:.72rem;line-height:1.4;text-align:center;word-break:break-word;color:#f5f1e8bd}.public-qr-timer{width:100%;height:.2rem;overflow:hidden;border-radius:999px;background:#f5f1e81f}.public-qr-timer span{display:block;width:100%;height:100%;transform-origin:left center;background:#9fb48deb;animation:public-qr-timeout 10s linear forwards}@keyframes public-qr-timeout{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.public-state{min-height:100vh;min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:.8rem;padding:calc(2rem + var(--safe-area-top)) calc(2rem + var(--safe-area-right)) calc(2rem + var(--safe-area-bottom)) calc(2rem + var(--safe-area-left));text-align:center}.public-footer{align-items:center;max-width:52rem;margin:0 auto;padding-top:.25rem;padding-bottom:calc(1.2rem + var(--safe-area-bottom));gap:.55rem;flex-wrap:nowrap}.public-footer button{flex:1 1 0;min-width:0;padding:.68rem .9rem;font-size:.95rem;white-space:nowrap}.public-footer span{flex:0 0 auto;min-width:3.6rem;text-align:center;font-size:.92rem;white-space:nowrap}@media(max-width:900px){.public-header{display:grid}.public-header-meta{justify-items:start;text-align:left}.public-library{grid-template-columns:1fr}.public-library-search{position:static}.public-library.public-library-search-only,.public-library.public-library-reader-only{width:min(72rem,calc(100% - 2.4rem - var(--safe-area-left) - var(--safe-area-right)))}}@media(max-width:640px){.public-header{padding-left:calc(1rem + var(--safe-area-left))}.public-header-main{align-items:start}.public-logo{width:2.8rem;height:2.8rem}.public-qr-card{width:min(18rem,100%);padding:.9rem}.public-topbar.is-collapsed .public-header{display:flex}.public-topbar.is-collapsed .public-header-main{align-items:center}.public-controls{gap:.45rem;padding:.5rem;max-width:calc(100vw - 1rem)}.public-status-banner{width:min(100%,calc(100% - 1rem - var(--safe-area-left) - var(--safe-area-right)));font-size:.88rem}.public-controls button{min-width:2.9rem;padding:.46rem .68rem}.public-library{width:min(100%,calc(100% - 1rem - var(--safe-area-left) - var(--safe-area-right)));gap:.8rem;padding-top:.4rem}.public-library-panel,.public-library-song{padding:1rem}.public-footer{padding-inline:calc(.8rem + var(--safe-area-left)) calc(.8rem + var(--safe-area-right))}.public-footer button{font-size:.88rem;padding-inline:.7rem}.public-footer span{min-width:3rem;font-size:.84rem}}.success-text{color:#bfe6c2}.field{display:grid;gap:.35rem;text-align:left;font-size:.92rem}.field>span{color:#f5f1e8bd}.field input,.field select,.public-sheet select{font:inherit;color:inherit;padding:.7rem .85rem;border-radius:14px;border:1px solid rgba(245,241,232,.2);background:#10161b59}.secondary-button{background:transparent}button.public-cta-button{background:var(--color-olive);color:var(--color-night);border-color:transparent;font-weight:700}button.public-cta-button:hover{background:#b2c6a1}.public-cta-feedback{margin:.5rem auto 0;max-width:52rem;text-align:center}.public-login{display:grid;place-items:center;min-height:100dvh;padding:calc(1.5rem + var(--safe-area-top)) 1.2rem calc(1.5rem + var(--safe-area-bottom))}.public-login-card{width:min(26rem,100%);display:grid;gap:.6rem;padding:1.8rem;border-radius:28px;background:var(--color-panel);box-shadow:var(--shadow-soft);text-align:center}.public-login-logo{width:4rem;height:4rem;object-fit:contain;margin:0 auto .4rem}.public-login-form{display:grid;gap:.9rem;margin-top:.8rem}.public-login-actions{display:grid;gap:.6rem;margin-top:.4rem}.public-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;align-items:end;justify-items:center;padding:1rem;background:#10161b99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.public-sheet{width:min(34rem,100%);display:grid;gap:.9rem;padding:1.4rem;border-radius:24px;background:linear-gradient(180deg,#24303afa,#182026fa);box-shadow:var(--shadow-soft);max-height:86dvh;overflow-y:auto}.public-sheet-head{display:flex;align-items:start;justify-content:space-between;gap:1rem}.public-sheet-close{width:2.2rem;height:2.2rem;padding:0;border-radius:999px;line-height:1;font-size:1.3rem}.public-sheet-body{display:grid;gap:.9rem}.public-sheet-actions{display:grid;grid-template-columns:1fr auto;gap:.6rem;margin-top:.3rem}.public-edit-bar{display:grid;gap:.5rem;width:min(52rem,calc(100% - 2.4rem));margin:0 auto;padding:.7rem .9rem;border-radius:18px;background:var(--color-panel);box-shadow:var(--shadow-soft)}.public-edit-context{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:#f5f1e89e}.public-edit-actions{display:flex;flex-wrap:wrap;gap:.45rem}.public-edit-actions button{padding:.5rem .8rem;font-size:.9rem}.public-edit-danger{border-color:#ffa0a080;color:#ffd0d0}.public-edit-error{margin:0}.public-edit-move{display:flex;flex-wrap:wrap;gap:.45rem;padding-top:.3rem;border-top:1px solid rgba(245,241,232,.14)}.public-edit-move button{padding:.45rem .75rem;font-size:.88rem}
