@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-latin-400-normal-B-1hWBU7.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-400-normal-B7YtguxJ.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-600-normal-Co1r35X9.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-600-normal-2CBVLo0M.woff)format("woff")}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-latin-400-normal-DQi5PRDE.woff2)format("woff2"),url(/assets/source-sans-3-latin-400-normal-AFMiCETP.woff)format("woff")}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-latin-600-normal-DeckBYAU.woff2)format("woff2"),url(/assets/source-sans-3-latin-600-normal-BvDVuF-j.woff)format("woff")}:root{--bg:#0c0c0c;--bg-elevated:#161616;--bg-soft:#1f1f1f;--text:#f7f7f7;--text-muted:#a8a8a8;--line:#ffe60024;--accent:#e31c23;--accent-soft:#ffe600;--danger:#e31c23;--success:#2f9e5a;--shadow:0 18px 50px #00000059;--radius:14px;--font-display:"Cormorant Garamond", Georgia, serif;--font-body:"Source Sans 3", "Segoe UI", sans-serif;--brand-yellow:#ffe600;--brand-red:#e31c23;--brand-black:#111}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}.btn-primary,.btn-ghost{border:0;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;padding:.7rem 1.15rem;text-decoration:none;display:inline-flex}.btn-primary{color:#111;background:linear-gradient(135deg,#ffe600,#f0c400);font-weight:700}.btn-ghost{color:var(--text);background:0 0;border:1px solid #ffe60047}.online-indicator{letter-spacing:.08em;color:var(--text-muted);align-items:center;gap:.4rem;font-size:.72rem;display:inline-flex}.online-indicator__dot{background:var(--danger);border-radius:50%;width:7px;height:7px}.online-indicator.is-online .online-indicator__dot{background:var(--success)}.online-indicator.is-compact{font-size:.65rem}.form-error,.form-success{border-radius:10px;margin:.75rem 0;padding:.75rem 1rem}.form-error{color:#f0b4b4;background:#c45c5c26}.form-success{color:#b7d4be;background:#6f9d7a26}.muted{color:var(--text-muted)}.panel{border:1px solid var(--line);border-radius:var(--radius);background:#16212beb;padding:1.25rem}.page-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.page-header h1{font-family:var(--font-display);margin:0;font-size:2rem;font-weight:600}.page-header p{color:var(--text-muted);margin:.35rem 0 0}.toolbar{flex-wrap:wrap;gap:.6rem;margin-bottom:1rem;display:flex}.toolbar input,.toolbar select,.form-grid input,.form-grid select,.form-grid textarea,.login-form input{border:1px solid var(--line);width:100%;color:var(--text);background:#101820;border-radius:10px;padding:.7rem .85rem}input[aria-invalid=true]{border-color:var(--danger)}.date-input{align-items:center;width:100%;display:flex;position:relative}.date-input>input[type=text]{width:100%;padding-right:2.6rem}.date-input__btn{width:2rem;height:2rem;color:var(--accent-soft);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:inline-grid;position:absolute;top:50%;right:.35rem;transform:translateY(-50%)}.date-input__btn:hover{background:#ffe6001a}.date-input__native{opacity:0;pointer-events:none;border:0;width:1px;height:1px;padding:0;position:absolute}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin-bottom:1rem;display:grid}.form-grid label,.login-form label{color:var(--text-muted);flex-direction:column;gap:.35rem;font-size:.92rem;display:flex}.form-grid .full{grid-column:1/-1}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.75rem .5rem}th{color:var(--text-muted);font-size:.85rem;font-weight:500}.row-actions{flex-wrap:wrap;gap:.35rem;display:flex}.row-actions button,.modal-actions button,.preview-box button,.admin-sidebar button,.menu-toggle,.calendar-cell,.week-row,.layout-picker button{border:1px solid var(--line);color:var(--text);background:#101820;border-radius:8px;padding:.4rem .65rem}.row-actions .danger{color:#f0b4b4}.modal-backdrop{z-index:50;background:#0000008c;place-items:center;padding:1rem;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.modal{width:min(720px,100%);max-height:90vh;overflow:auto}.modal-actions{justify-content:flex-end;gap:.6rem;margin-top:1rem;display:flex}.timeline-list{margin:0;padding:0;list-style:none}.timeline-list li{border-bottom:1px solid var(--line);grid-template-columns:64px 1fr;gap:.75rem;padding:.7rem 0;display:grid}.timeline-list time{color:var(--accent-soft);font-variant-numeric:tabular-nums}.timeline-list strong,.timeline-list span{display:block}.timeline-list span{color:var(--text-muted);font-size:.9rem}.linkish{text-align:left;color:inherit;background:0 0;border:0;padding:0}@media (max-width:800px){.form-grid{grid-template-columns:1fr}.page-header{flex-direction:column}}.login-page{background:radial-gradient(at top,#ffe60029,#0000 42%),radial-gradient(at 100% 100%,#e31c232e,#0000 40%),#0c0c0c;place-items:center;min-height:100vh;padding:1.5rem;display:grid}.login-card{width:min(420px,100%);box-shadow:var(--shadow);background:#161616f5;border:1px solid #ffe60038;border-radius:18px;padding:2rem 1.5rem}.login-brand{text-align:center;margin-bottom:1.5rem}.login-logo{object-fit:contain;filter:none;background:0 0;border-radius:50%;width:120px;height:120px;margin-bottom:.85rem;transition:transform .35s,box-shadow .35s;box-shadow:0 8px 28px #00000047}.login-cross{border:1px solid #ffe60059;border-radius:50%;place-items:center;width:48px;height:48px;margin-bottom:.75rem;display:inline-grid}.login-brand h1{font-family:var(--font-display);margin:0;font-weight:600}.login-brand p,.login-footer{color:var(--text-muted)}.login-form{gap:.9rem;display:grid}.login-footer{justify-content:space-between;align-items:center;margin-top:1.25rem;font-size:.9rem;display:flex}.display-boot{color:#ffe600;background:#0c0c0c;place-items:center;min-height:100vh;font-family:Cormorant Garamond,Georgia,serif;font-size:1.4rem;display:grid}.display-root{min-height:100vh;min-height:100dvh;color:var(--display-primary,#ffe600);background:#080808;position:relative;overflow:hidden}.display-root.cursor-hidden,.display-root.cursor-hidden *{cursor:none!important}.display-root.kiosk-active{overflow:hidden}.display-root.kiosk-active::-webkit-scrollbar{display:none}.display-bg,.display-overlay{position:absolute;top:0;bottom:0;left:0;right:0}.display-bg{z-index:0;background-repeat:no-repeat}.display-bg--fallback{background:radial-gradient(at 50% 0,#ffe60038,#0000 42%),radial-gradient(at 80% 85%,#e31c2338,#0000 38%),linear-gradient(165deg,#0a0a0a 0%,#151515 48%,#0c0c0c 100%)}.display-overlay{z-index:1;background:#050505}.display-content{z-index:2;min-height:100vh;text-align:center;min-height:100dvh;transform:translate(var(--burn-x,0), var(--burn-y,0));flex-direction:column;justify-content:center;align-items:center;gap:clamp(1.25rem,3.5vh,2.25rem);padding:clamp(3.5rem,6vh,5rem) clamp(1.25rem,3.5vw,3rem) clamp(1.75rem,4vh,3rem);transition:transform 8s ease-in-out;display:flex;position:relative}.display-header{flex-direction:column;flex-shrink:0;order:1;align-items:center;gap:.65rem;width:min(720px,100%);margin:0;display:flex}.display-header.logo-top-left{text-align:left;align-items:flex-start}.display-header.logo-top-right{text-align:right;align-items:flex-end}.display-logo{object-fit:contain;filter:none;opacity:.98;background:0 0;border-radius:50%;width:clamp(72px,10vw,120px);height:clamp(72px,10vw,120px);box-shadow:0 10px 36px #00000040}.display-logo-fallback{border:1px solid #ffe60059;border-radius:50%;place-items:center;width:clamp(48px,7vw,72px);height:clamp(48px,7vw,72px);font-size:clamp(1.4rem,3vw,2rem);display:grid}.display-church-name{letter-spacing:.14em;text-transform:uppercase;color:var(--display-primary,#ffe600);margin:0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.05rem,2.2vw,1.75rem);font-weight:600}.display-event{border-top:0;flex-shrink:0;order:2;width:min(680px,100%);margin:0;padding:0}.display-countdown-hero{order:2}.display-event__label{letter-spacing:.28em;text-transform:uppercase;color:#d4b87ae0;font-family:"Source Sans 3",Segoe UI,sans-serif;font-size:clamp(.62rem,1.35vw,.78rem);font-weight:500}.display-event.is-live .display-event__label{color:#e87876f2}.display-event__name{letter-spacing:.06em;color:#f5ecdcf5;text-shadow:0 2px 24px #00000059;margin-top:clamp(.35rem,1vh,.55rem);font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.45rem,3.2vw + .4rem,2.35rem);font-weight:500;line-height:1.2}.display-event__meta{letter-spacing:.04em;color:#a8a296eb;margin-top:clamp(.3rem,.8vh,.45rem);font-family:"Source Sans 3",Segoe UI,sans-serif;font-size:clamp(.78rem,1.5vw,.95rem);font-weight:400;line-height:1.45}.display-countdown{margin-top:clamp(.7rem,1.8vh,1.1rem)}.display-countdown__label{letter-spacing:.24em;text-transform:uppercase;color:#d4b87ac7;font-family:"Source Sans 3",Segoe UI,sans-serif;font-size:clamp(.58rem,1.2vw,.72rem);font-weight:500}.display-countdown__value,.display-countdown-hero{font-variant-numeric:tabular-nums;letter-spacing:.14em;color:#e8d096f2;text-shadow:0 4px 28px #0006;margin-top:clamp(.25rem,.7vh,.4rem);font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.55rem,3.4vw + .35rem,2.75rem);font-weight:500;line-height:1.1}.display-clock-block{border-top:1px solid #ffe60038;flex-shrink:0;order:3;width:min(720px,100%);margin:0;padding-top:clamp(1rem,2.5vh,1.5rem)}.display-clock{font-variant-numeric:tabular-nums;letter-spacing:.04em;font-family:Cormorant Garamond,Georgia,serif;font-weight:500;line-height:1;font-size:calc(clamp(3.1rem, 9.5vw, 6.4rem) * var(--clock-scale,1));color:#f7f1e4;text-shadow:0 8px 40px #00000059}.display-day{letter-spacing:.28em;color:var(--display-accent,#e31c23);margin-top:.75rem;font-size:clamp(.9rem,1.5vw,1.15rem)}.display-date{letter-spacing:.12em;color:#f3efe6e6;margin-top:.35rem;font-size:clamp(1rem,1.8vw,1.4rem)}.display-tz{letter-spacing:.16em;color:#a9b0b8e6;margin-top:.4rem;font-size:.85rem}.display-chrome{top:calc(.75rem + env(safe-area-inset-top,0px));right:calc(.75rem + env(safe-area-inset-right,0px));z-index:20;max-width:calc(100vw - 1.5rem - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:.7;background:#00000059;border-radius:999px;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.4rem;padding:.35rem .45rem;transition:opacity .25s;display:flex;position:fixed;bottom:auto;left:auto}.display-chrome .btn-ghost{letter-spacing:.04em;white-space:nowrap;padding:.45rem .8rem;font-size:.72rem}.display-chrome:hover,.display-chrome:focus-within{opacity:1}.display-back{top:calc(.75rem + env(safe-area-inset-top,0px));left:calc(.75rem + env(safe-area-inset-left,0px));z-index:30;color:#f5ecd8;letter-spacing:.08em;cursor:pointer;opacity:.92;background:#0000008c;border:1px solid #ffe60059;border-radius:999px;align-items:center;gap:.25rem;min-height:2.6rem;padding:.45rem .85rem .45rem .55rem;font-size:.72rem;display:inline-flex;position:fixed}.display-back:hover{opacity:1;border-color:#ffe600b3}.display-back:focus-visible{opacity:1;border-color:#ffe600b3}.sound-toggle{top:calc(.75rem + env(safe-area-inset-top,0px));left:calc(6.4rem + env(safe-area-inset-left,0px));z-index:25;width:2.6rem;height:2.6rem;color:var(--accent-soft,#ffe600);cursor:pointer;opacity:.9;background:#00000073;border:1px solid #ffe60059;border-radius:999px;place-items:center;display:inline-grid;position:fixed}.sound-toggle.is-muted{color:#ffffff8c;border-color:#fff3}.sound-toggle:hover{opacity:1;background:#ffe6001f}.sound-hint{z-index:21;color:#ffe600;cursor:pointer;background:#000000b3;border:1px solid #ffe6004d;border-radius:999px;padding:.55rem 1rem;font-size:.8rem;position:fixed;bottom:1rem;left:50%;transform:translate(-50%)}.kiosk-active .display-chrome{opacity:0;pointer-events:none}.kiosk-active.show-mode-chrome .display-chrome{opacity:.85;pointer-events:auto}.display-layout--minimal .display-event{border-top:0}.display-layout--modern .display-clock{letter-spacing:.08em;font-family:"Source Sans 3",sans-serif;font-weight:300}.display-layout--countdown .display-countdown-hero{margin-top:1.5rem;font-size:clamp(2.5rem,8vw,5rem)}.display-layout--fullscreen .display-header{opacity:.85;margin-top:1.25rem}.display-layout--fullscreen .display-clock{font-size:calc(clamp(6rem, 18vw, 14rem) * var(--clock-scale,1))}.theme-light{color:#1d2430}.theme-light .display-overlay{background:#f4f1ea}.theme-light .display-clock,.theme-light .display-church-name,.theme-light .display-date,.theme-light .display-event__name{color:#1d2430;text-shadow:none}.theme-light .display-event__label,.theme-light .display-countdown__label{color:#8c6e32e6}.theme-light .display-event__meta{color:#505862e6}.theme-light .display-countdown__value,.theme-light .display-countdown-hero{color:#8a6a2a;text-shadow:none}.theme-warm .display-bg--fallback{background:radial-gradient(at 50% 15%,#ffe60047,#0000 40%),radial-gradient(at 70% 80%,#e31c2340,#0000 42%),linear-gradient(160deg,#1a1208 0%,#2a160f 50%,#120c08 100%)}@media (max-width:700px){.display-content{padding-top:calc(5.25rem + env(safe-area-inset-top,0px) + var(--native-status-inset,0px));padding-bottom:calc(1.75rem + env(safe-area-inset-bottom,0px));justify-content:center;gap:1.1rem}.display-chrome{top:calc(.5rem + env(safe-area-inset-top,0px) + var(--native-status-inset,36px));right:calc(.5rem + env(safe-area-inset-right,0px));left:calc(.5rem + env(safe-area-inset-left,0px));justify-content:space-between;max-width:none}.display-chrome .btn-ghost{padding:.4rem .65rem;font-size:.65rem}.display-back,.sound-toggle{top:calc(.5rem + env(safe-area-inset-top,0px) + var(--native-status-inset,36px))}}html.is-native-app{--native-status-inset:40px}html.is-native-app .display-chrome,html.is-native-app .sound-toggle,html.is-native-app .display-back{top:calc(.55rem + var(--native-status-inset,40px))!important}html.is-native-app .display-content{padding-top:calc(clamp(3.5rem, 6vh, 5rem) + var(--native-status-inset,40px) + 2.75rem)}@media (max-width:700px){html.is-native-app .display-content{padding-top:calc(5.5rem + var(--native-status-inset,40px))}}
