:root{--ink:#18392f;--muted:#66766f;--line:#dce5df;--green:#196e50;--paper:#f4f6f2}*{box-sizing:border-box}body{margin:0;font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--paper);color:var(--ink)}aside{position:fixed;inset:0 auto 0 0;width:235px;background:#143c30;color:#eef8ef;padding:36px 25px}.brand{font-size:25px;font-weight:700;letter-spacing:-1px}aside .muted{font-size:10px;letter-spacing:1.3px;color:#b5cbbf;margin-top:8px}nav{display:grid;gap:12px;margin-top:48px}nav a{color:#dbe9df;text-decoration:none;padding:10px 8px;border-radius:6px}nav a:hover{background:#285343}.aside-note{position:absolute;bottom:30px;font-size:12px;color:#b5cbbf;line-height:1.9}main{max-width:1390px;margin-left:235px;padding:42px 48px}header,.section-head{display:flex;justify-content:space-between;align-items:center;gap:20px}header{margin-bottom:30px}h1{font-size:36px;letter-spacing:-1.4px;margin:10px 0 4px;line-height:1.2}h2{font-size:21px;letter-spacing:-.5px;margin:6px 0 20px}h3{margin-top:26px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:750;color:#497b64}.muted,.hint{color:var(--muted)}.hint{font-size:12px;margin:12px 0}.badge{white-space:nowrap;border:1px solid #aec8b8;border-radius:30px;padding:8px 13px;font-size:10px;letter-spacing:1px}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:28px;margin-bottom:22px;box-shadow:0 3px 10px #143c3004}p{margin-top:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.stats div{border:1px solid var(--line);border-radius:10px;background:#fff;padding:20px}.stats span{display:block;font-size:9px;letter-spacing:1px;color:var(--muted)}.stats strong{font-size:35px;font-weight:600}.notice{border-left:3px solid #c5a65b;background:#faf5e7;padding:14px 18px;font-size:12px;margin:18px 0 24px}.notice.small{margin-top:20px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:14px 0;align-items:end}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}label{display:block;font-size:12px;font-weight:600}input,select,textarea{width:100%;display:block;border:1px solid #ccd9d0;background:#fcfdfb;border-radius:6px;color:var(--ink);padding:11px 12px;font:14px inherit;margin-top:7px;min-height:44px}input:focus,select:focus,textarea:focus{outline:2px solid #9ecab4;outline-offset:1px}input[type=checkbox]{width:17px;min-height:auto;margin:0}.check{display:flex;align-items:center;gap:9px;padding:12px 0}.prayers{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.days{display:flex;flex-wrap:wrap;gap:16px;margin:18px 0}.days label{display:flex;gap:5px;align-items:center}button{border:0;background:var(--green);color:white;border-radius:6px;padding:12px 18px;font:600 12px inherit;cursor:pointer;min-height:44px;margin-top:8px}button:hover{filter:brightness(1.08)}button.secondary{background:#eaf1eb;color:#245840}form:not(.grid){display:flex;align-items:center;gap:12px}form:not(.grid) input{flex:1}form:not(.grid) button{white-space:nowrap}.divider{border-top:1px solid var(--line);margin:25px 0}.row{display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:14px 0;font-size:13px}.row small{display:block;color:var(--muted)}.pill{background:#eaf1eb;padding:4px 8px;border-radius:30px;font-size:10px}.event-list{max-height:220px;overflow:auto}.event-list p{font-size:12px;padding:8px 0;border-bottom:1px solid var(--line);margin:0}pre,textarea{font-family:ui-monospace,SFMono-Regular,monospace}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f0f5f0;padding:18px;border-radius:8px;font-size:12px}details{margin-top:24px}summary{cursor:pointer;font-weight:600;font-size:13px}#message{position:fixed;right:25px;bottom:25px;background:#153c30;color:white;max-width:520px;border-radius:8px;padding:14px 22px;display:none;z-index:5}footer{font-size:11px;color:var(--muted);margin-top:32px}[hidden]{display:none!important}@media(max-width:1000px){aside{width:190px;padding:30px 18px}main{margin-left:190px;padding:28px 22px}.stats{grid-template-columns:repeat(2,1fr)}h1{font-size:29px}}@media(max-width:650px){aside{position:static;width:100%;padding:20px}nav{display:flex;gap:5px;overflow:auto;margin-top:15px;font-size:12px}.aside-note{display:none}main{margin:0;padding:20px 14px}.card{padding:20px}.grid,.grid.three{grid-template-columns:1fr}.prayers{grid-template-columns:repeat(2,1fr)}header{align-items:flex-start}.badge{display:none}form:not(.grid){display:block}}
.cal-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}.cal-toolbar button{margin:0}.cal-legend{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.cal-key{font-size:11px;border-radius:5px;padding:5px 9px}.music{background:#dceee4;color:#164a32}.advert{background:#fff0d1;color:#754605}.prayer{background:#e9e3fb;color:#493574}.skipped{background:#eee;color:#69716b;text-decoration:line-through}.cal-scroll{overflow:auto;max-height:650px;border:1px solid var(--line);border-radius:8px;background:#fff}.cal-week-grid{display:grid;grid-template-columns:58px repeat(7,minmax(112px,1fr));min-width:900px}.cal-day-heading{position:sticky;top:0;z-index:3;padding:12px 4px;background:#eef4ee;font-size:11px;font-weight:700;text-align:center;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.cal-times,.cal-day{position:relative;height:864px}.cal-times{background:#f9fbf8}.cal-times span{position:absolute;font-size:10px;color:var(--muted);padding:2px 4px}.cal-day{border-right:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 35px,#e6ece6 35px,#e6ece6 36px);cursor:crosshair}.cal-event{position:absolute;min-height:0!important;margin:0;padding:2px 4px;border-radius:4px;border:1px solid #ffffffb3;font-size:10px;line-height:1.2;text-align:left;overflow:hidden;overflow-wrap:anywhere;cursor:pointer}.cal-event:focus-visible{outline:2px solid #18392f;z-index:2}.cal-event:hover{z-index:2;filter:brightness(.98)}.cal-agenda{max-height:360px;overflow:auto;display:grid;gap:6px}.cal-agenda-item{margin:0;text-align:left;font-size:12px;min-height:38px}.cal-dialog{width:min(760px,95vw);max-height:90vh;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:26px;color:var(--ink);background:white}.cal-dialog::backdrop{background:#0b2119a6}.cal-dialog .section-head h2{margin:0}.cal-form{display:block!important;margin-top:20px}.cal-form>label{margin:14px 0}.cal-dialog .days{gap:12px}.cal-danger{background:#a43d35}#cal-warnings{white-space:pre-line}#cal-campaigns{display:flex;gap:8px;flex-wrap:wrap}button:disabled{opacity:.55;cursor:default}.player-card{padding:10px 0 20px;border-bottom:1px solid var(--line)}

/* ── Login Gate ─────────────────────────────────────────── */
#login-gate{
  position:fixed;inset:0;z-index:9999;
  display:flex;align-items:center;justify-content:center;
  background:#0e2a21;
  transition:opacity .35s ease;
}
#login-gate.hidden{opacity:0;pointer-events:none;}
.gate-box{
  background:#fff;border-radius:16px;
  padding:48px 44px;width:100%;max-width:420px;
  box-shadow:0 24px 80px rgba(0,0,0,.35);
  text-align:center;
}
.gate-logo{
  font-size:32px;font-weight:800;letter-spacing:-1.5px;
  color:#143c30;margin-bottom:4px;
}
.gate-logo span{color:#196e50;}
.gate-sub{font-size:12px;letter-spacing:2px;color:#7a9e8c;
  text-transform:uppercase;margin-bottom:36px;}
.gate-box label{text-align:left;font-size:12px;font-weight:600;
  color:#497b64;display:block;margin-bottom:6px;}
.gate-box input{
  width:100%;border:1.5px solid #ccd9d0;border-radius:8px;
  padding:13px 14px;font:14px inherit;color:#18392f;
  background:#fcfdfb;margin-bottom:16px;
  transition:border-color .2s;
}
.gate-box input:focus{outline:none;border-color:#196e50;}
.gate-btn{
  width:100%;background:#196e50;color:#fff;border:0;
  border-radius:8px;padding:14px;font:700 14px inherit;
  cursor:pointer;margin-top:4px;letter-spacing:.5px;
  transition:filter .15s;
}
.gate-btn:hover{filter:brightness(1.1);}
.gate-error{
  color:#b94040;font-size:12px;margin-top:12px;
  min-height:18px;font-weight:500;
}
.gate-footer{font-size:11px;color:#aab8b2;margin-top:24px;}
