@font-face{font-family:Cairo;src:url('/media/cairo.ttf') format('truetype');font-weight:200 1000;font-display:swap}
:root{font-family:Cairo,sans-serif;color:#332f27;background:#f5f2e8;font-synthesis:none;line-height:1.8;color-scheme:light;--green:#2f6b3f;--gold:#8b6b35;--border:#d6dbce}
*{box-sizing:border-box}body{margin:0;min-height:100vh;min-height:100dvh;background:linear-gradient(#f5f2e8d9,#f5f2e8f0),url('/media/sanctuary.jpg') center/cover no-repeat}
main{max-width:508px;margin:auto;padding:20px max(16px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.brand{display:flex;gap:12px;align-items:center;justify-content:center;margin:0 0 20px}
/* Preserve the complete official logo tile and original proportions. */
.brand img{display:block;flex-shrink:0;object-fit:contain;background:transparent;width:72px;height:72px}
.brand .brand-name{color:var(--green);font-size:27px;font-weight:750;line-height:1.5;margin:0}.brand p{margin:0;font-size:12px;color:#575e4d}
.card{padding:24px;border:1px solid #d6d8c9;border-radius:22px;background:#fffdf8;box-shadow:0 8px 28px #3548320d}
.eyebrow{color:var(--gold);margin:0;font-size:13px;font-weight:650}h1{font-size:26px;line-height:1.6;color:var(--green);margin:0 0 16px}h3{color:var(--green);font-size:21px;line-height:1.8;margin:16px 0 10px}p{margin:10px 0;overflow-wrap:anywhere}
.service{font-weight:700;color:var(--green);font-size:16px}#meeting{padding-bottom:14px;border-bottom:1px solid #e3e3d7;margin-bottom:18px}#meeting-title{font-size:16px;margin:4px 0}#meeting-date{font-size:13px;margin:6px 0 0}
.muted,.hint{color:#4d554b}.hint{font-size:13px;line-height:1.9;margin:6px 0 12px}.notice{background:#f0f3e9;border-inline-start:3px solid #8a9d71;padding:10px 12px;font-size:13px;border-radius:8px;margin:0 0 20px}
label{display:block;font-weight:700}input,button{font:inherit;border-radius:12px;min-height:48px}input{border:1px solid #808a75;background:#fffefb;padding:10px 12px;min-width:0;width:100%;color:inherit;font-size:16px}input::placeholder{color:#6a725f;opacity:1}
:where(input,button):focus-visible,.choice:focus-within{outline:3px solid #99772f;outline-offset:3px}.search-row{display:flex;gap:8px;align-items:stretch}.search-row input{flex:1}
button{cursor:pointer;border:1px solid var(--green);background:#f1f5ed;color:var(--green);padding:10px 16px;font-weight:700;touch-action:manipulation}button:disabled{background:#e4e8df;color:#606b59;border-color:#c4ccbc;cursor:default}button:not(:disabled):active{background:#e1ead9}.primary{background:var(--green);color:#fff;width:100%;margin-top:16px;min-height:52px}.primary:not(:disabled):active{background:#1d472a}
fieldset{border:0;padding:0;min-width:0;margin:20px 0 0}legend{font-weight:700;margin-bottom:10px;padding:0;font-size:14px}.choice{display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:10px;min-height:56px;cursor:pointer;font-weight:600}.choice span{min-width:0;overflow-wrap:anywhere;unicode-bidi:plaintext}.choice:has(input:checked){background:#edf3e7;border:2px solid var(--green);padding:11px}.choice input{width:22px;height:22px;min-height:22px;margin:0;accent-color:var(--green);flex-shrink:0}.selection-feedback{font-size:13px;color:var(--green);font-weight:700;margin:8px 0 0}
.confirmation{text-align:center;padding:14px 0 4px;outline-offset:6px}.confirmation p{font-size:14px}.check{display:inline-flex;align-items:center;justify-content:center;background:#e5efdd;color:var(--green);border-radius:50%;width:58px;height:58px;font-size:32px}#status:empty{display:none}#status{font-size:14px;padding:10px 12px;background:#f0f3e9;border-radius:10px}#status.error{color:#7c3023;background:#fcf0e9;border:1px solid #e4c5b8}#retry{margin-bottom:16px}footer{font-size:12px;text-align:center;padding-top:18px;color:#535d49}[hidden]{display:none!important}
@media(max-width:360px){main{padding:16px 12px 24px}.card{padding:20px 16px}.brand{margin-bottom:16px}.brand img{width:64px;height:64px}h1{font-size:24px}.search-row{gap:6px}.search-row button{padding-inline:13px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}@media(forced-colors:active){.choice:has(input:checked){border-color:Highlight}.check{border:1px solid CanvasText}}
.confirmation:focus{outline:none}.choice input:focus-visible{outline:none}

.selection-feedback{padding:12px;border-inline-start:3px solid var(--gold);border-radius:8px;background:#f0f3e9;font-size:14px}.choice.ambiguous{cursor:default;background:#f6f4ee}.choice small{font-size:12px;font-weight:400;color:#66583d}#status:focus{outline:2px solid var(--gold);outline-offset:2px}
