:root{
  --navy:#12263A; --navy-deep:#0C1B2A; --parchment:#FAF7F0; --sky:#E8EEF4;
  --gold:#C9A227; --gold-soft:#E5C55C; --slate:#33465A; --line:#D8DFE6;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Assistant',system-ui,sans-serif;background:var(--parchment);color:var(--slate);line-height:1.5}
.display{font-family:'Frank Ruhl Libre',serif}

header{background:var(--navy);color:var(--parchment);padding:12px 16px;position:sticky;top:0;z-index:50;box-shadow:0 2px 12px rgba(12,27,42,.25)}
.hrow{display:flex;align-items:center;justify-content:space-between;gap:10px;max-width:640px;margin:0 auto}
header h1{font-family:'Frank Ruhl Libre',serif;font-weight:700;font-size:1.02rem;letter-spacing:.02em;white-space:nowrap}
header h1 a{color:inherit;text-decoration:none}
header h1 span{color:var(--gold-soft)}
#hebdate{font-size:.75rem;opacity:.85;text-align:right}
nav{display:flex;gap:4px;max-width:640px;margin:8px auto 0;flex-wrap:wrap}
nav a{color:var(--parchment);text-decoration:none;font-size:.85rem;font-weight:600;padding:5px 12px;border-radius:999px;opacity:.75}
nav a.on{background:rgba(250,247,240,.14);opacity:1;color:var(--gold-soft)}

main{max-width:640px;margin:0 auto;padding:18px 16px 80px}

.hero{background:linear-gradient(160deg,var(--navy) 0%,var(--navy-deep) 100%);color:var(--parchment);border-radius:18px;padding:24px 22px 20px;margin-bottom:22px;position:relative;overflow:hidden;box-shadow:0 8px 28px rgba(12,27,42,.28)}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 10%,rgba(201,162,39,.18),transparent 55%);pointer-events:none}
.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:6px}
.hero .tefilah{font-family:'Frank Ruhl Libre',serif;font-weight:900;font-size:2.2rem;line-height:1.1}
.hero .where{font-size:1.05rem;margin-top:4px;opacity:.95}
.hero .when{margin-top:14px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.hero .clock{font-family:'Frank Ruhl Libre',serif;font-weight:700;font-size:1.7rem;color:var(--gold-soft)}
.hero .countdown{font-size:.95rem;background:rgba(250,247,240,.12);padding:4px 12px;border-radius:999px}
.hero .after{margin-top:16px;padding-top:14px;border-top:1px solid rgba(250,247,240,.18);font-size:.9rem}
.hero .after strong{color:var(--gold-soft);font-weight:600}

h2{font-family:'Frank Ruhl Libre',serif;font-weight:700;font-size:1.25rem;color:var(--navy);margin:26px 0 12px;display:flex;align-items:center;gap:10px}
h2::after{content:"";flex:1;height:1px;background:var(--line)}

.zgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.zcard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.zcard .zname{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#7A8CA0}
.zcard .ztime{font-family:'Frank Ruhl Libre',serif;font-weight:700;font-size:1.25rem;color:var(--navy);margin-top:2px}
.znote{font-size:.78rem;color:#7A8CA0;margin-top:8px}

.shul{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:12px;overflow:hidden}
.shul summary{list-style:none;cursor:pointer;padding:15px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:700;color:var(--navy);font-size:1.02rem}
.shul summary::-webkit-details-marker{display:none}
.shul summary .chev{transition:transform .2s;color:var(--gold);font-size:.85rem}
.shul[open] summary .chev{transform:rotate(90deg)}
.sched{padding:0 16px 14px}
.sched table{width:100%;border-collapse:collapse;font-size:.95rem}
.sched td{padding:7px 0;border-top:1px solid var(--sky)}
.sched td:last-child{text-align:right;font-weight:600;color:var(--navy)}

.ann{background:#fff;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:10px;padding:13px 15px;margin-bottom:10px;font-size:.95rem}
.ann .adate{font-size:.75rem;color:#7A8CA0;font-weight:600;text-transform:uppercase;letter-spacing:.05em}

/* Calendar page */
.datebar{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.datebar button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 14px;font-size:1rem;cursor:pointer;color:var(--navy);font-weight:700}
.datebar input[type=date]{flex:1;border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:1rem;font-family:inherit;color:var(--navy);background:#fff}
.heb-banner{background:var(--navy);color:var(--parchment);border-radius:12px;padding:12px 16px;margin:10px 0 16px}
.heb-banner .hd{font-family:'Frank Ruhl Libre',serif;font-size:1.15rem;color:var(--gold-soft)}
.heb-banner .hol{font-size:.9rem;opacity:.95;margin-top:2px}
.dayrow{display:flex;justify-content:space-between;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 14px;margin-bottom:8px;font-size:.98rem}
.dayrow .t{font-weight:700;color:var(--navy);white-space:nowrap}
.dayrow .special{color:var(--gold);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.empty{color:#7A8CA0;font-size:.95rem;background:#fff;border:1px dashed var(--line);border-radius:10px;padding:16px;text-align:center}

/* Admin page */
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:14px}
label{display:block;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#7A8CA0;margin:10px 0 4px}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:1rem;font-family:inherit;color:var(--navy);background:#fff}
textarea{min-height:70px}
.btn{display:inline-block;border:0;background:var(--navy);color:var(--parchment);font-weight:700;font-size:1rem;padding:11px 20px;border-radius:10px;cursor:pointer;margin-top:12px}
.btn.gold{background:var(--gold);color:#fff}
.btn.ghost{background:transparent;color:var(--navy);border:1px solid var(--line)}
.btn.sm{padding:6px 12px;font-size:.85rem;margin:0}
.row{display:flex;gap:10px}
.row>*{flex:1}
.minyan-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;border-top:1px solid var(--sky);font-size:.95rem}
.err{color:#B3372B;font-size:.9rem;margin-top:8px}
.okmsg{color:#2E7D4F;font-size:.9rem;margin-top:8px}

footer{text-align:center;font-size:.8rem;color:#8A9AAC;padding:30px 16px 40px}
footer a{color:var(--navy)}
.loading{opacity:.55;font-size:.9rem}

@media (min-width:560px){
  .zgrid{grid-template-columns:repeat(3,1fr)}
  .hero .tefilah{font-size:2.6rem}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .shul summary .chev{transition:none}
}
