@font-face{font-family:"FRL";src:url(assets/frl-500.ttf) format("truetype");font-weight:500;font-display:block}
@font-face{font-family:"FRL";src:url(assets/frl-700.ttf) format("truetype");font-weight:700;font-display:block}
@font-face{font-family:"FRL";src:url(assets/frl-900.ttf) format("truetype");font-weight:900;font-display:block}
/* v7: fonts the gabbai can pick (config font), bundled so the TV needs no outside font service */
@font-face{font-family:"KLDavid";src:url(assets/fonts/david-400.ttf) format("truetype");font-weight:400 600;font-display:block}
@font-face{font-family:"KLDavid";src:url(assets/fonts/david-700.ttf) format("truetype");font-weight:700 900;font-display:block}
@font-face{font-family:"KLNotoSerif";src:url(assets/fonts/notoserif-var.ttf) format("truetype");font-weight:100 900;font-display:block}
@font-face{font-family:"KLHeebo";src:url(assets/fonts/heebo-var.ttf) format("truetype");font-weight:100 900;font-display:block}
@font-face{font-family:"KLAssistant";src:url(assets/fonts/assistant-var.ttf) format("truetype");font-weight:200 800;font-display:block}

/* ===== Themes (pick in config.js: theme "A" / "B", or ?theme=A / ?theme=B) ===== */
/* A — printed poster: cream paper, black ink, deep burgundy accent, double-rule frame */
#stage.theme-A{--paper:#f7f1e3;--ink:#1c140d;--ink2:#4a3a2c;--accent:#6e1f1f;--line:#3b2a1c;--soft:#b7a68c;--past:#938670;--tint:#efe5cf}
/* B — clean white: white, near-black, one deep-green accent, simple thin lines */
/* A1 — cream paper, near-black + antique gold (default for Zera Shimshon) */
#stage.theme-A1{--paper:#f7f1e3;--ink:#1d1a16;--ink2:#4b4339;--accent:#86692c;--line:#9a7b3c;--soft:#cdbb92;--past:#968a77;--tint:#efe5cf;--dial:#fbf7ec}
/* A2 — cream paper, espresso brown + warm bronze */
#stage.theme-A2{--paper:#f7f1e3;--ink:#2b1d14;--ink2:#5a4636;--accent:#7f5733;--line:#8c6239;--soft:#cfb594;--past:#9a8a78;--tint:#efe2cf;--dial:#fbf6ec}
#stage.theme-B{--paper:#ffffff;--ink:#141414;--ink2:#4a4a4a;--accent:#1d4a36;--line:#1d1d1d;--soft:#cfcfcf;--past:#959595;--tint:#f2f5f3}

*{box-sizing:border-box;margin:0;padding:0}
html,body{width:100%;height:100%;overflow:hidden;background:#e9e4d8}
body{font-family:"FRL","Frank Ruhl Libre","David",serif;color:var(--ink)}
#stage{position:absolute;left:0;top:0;width:1920px;height:1080px;transform-origin:0 0;overflow:hidden;
  background:var(--paper);color:var(--ink);padding:40px 64px 30px;display:flex;flex-direction:column}
.t,.ltr{direction:ltr;unicode-bidi:isolate;font-variant-numeric:lining-nums tabular-nums}

/* ---- header ---- */
header.top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:232px;gap:30px}
.shul{display:flex;align-items:center;justify-content:flex-start;gap:24px;min-width:0}
.shul-logo{height:212px;width:auto;flex:none}
.shul-logo:not([src]){display:none}
.shultext{text-align:right;min-width:0}
.shul h1{font-size:120px;font-weight:900;line-height:1;color:var(--ink)}
.shul .sub{font-size:30px;color:var(--ink2);direction:ltr;text-align:right;font-weight:500}
.shul.haslogo .sub{display:none}
.dates{text-align:center;display:flex;flex-direction:column;align-items:center}
.parsha{font-size:84px;font-weight:900;color:var(--accent);line-height:1.05;white-space:nowrap}
.parsha:empty{display:none}
.hebdate{font-size:50px;font-weight:700;color:var(--ink);line-height:1.2;margin-top:6px;white-space:nowrap}
.engdate{font-size:30px;color:var(--ink2);direction:ltr!important;font-weight:500;margin-top:2px;white-space:nowrap}
.clock{display:flex;justify-content:flex-end}
.clock .time{direction:ltr;display:flex;align-items:flex-start;font-weight:700;color:var(--ink);line-height:1}
#hm{font-size:176px;letter-spacing:-3px;font-variant-numeric:lining-nums tabular-nums}
.secwrap{display:flex;flex-direction:column;align-items:flex-start;margin-left:14px;margin-top:24px}
#ampm{font-size:46px;font-weight:700;color:var(--ink)}
#ss{font-size:40px;color:var(--ink2);font-weight:500;margin-top:10px;font-variant-numeric:lining-nums tabular-nums}

.rule{margin:10px 0 24px;height:0;border-top:1px solid var(--line)}

/* analog clock (config clockStyle: "analog") */
.aclock{display:none}
.clock.analog{align-items:center;gap:26px}
.clock.analog .aclock{order:2;display:block;width:224px;height:224px;flex:none}
.aclock svg{width:100%;height:100%;display:block;overflow:visible}
.aclock .ring1{fill:none;stroke:var(--line);stroke-width:3}
.aclock .ring2{fill:none;stroke:var(--line);stroke-width:1}
.aclock .dial{fill:var(--dial,var(--paper));stroke:none}
.aclock .tk{stroke:var(--ink2);stroke-width:.9}
.aclock .tk5{stroke:var(--ink);stroke-width:2.6}
.aclock .num{font-family:"FRL",serif;font-weight:700;font-size:17px;fill:var(--ink)}
.aclock .num.rom{font-size:15px;letter-spacing:-.5px}
.aclock .hand{fill:var(--ink)}
.aclock .sec{stroke:var(--accent);stroke-width:1.3}
.aclock .seccap{fill:var(--accent)}
.aclock .pin{fill:var(--paper)}
.clock.analog .time{flex-direction:column;align-items:center}
.clock.analog #hm{font-size:84px;letter-spacing:-1px}
.clock.analog .secwrap{margin:4px 0 0;flex-direction:row;gap:12px;align-items:baseline}
.clock.analog #ampm{font-size:38px;color:var(--ink2)}
.clock.analog #ss{display:none}

/* ---- columns ---- */
main{flex:1;display:grid;grid-template-columns:540px 650px 1fr;gap:36px;min-height:0}
.panel{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:18px 34px 20px}
.ptitle{font-size:48px;font-weight:900;color:var(--accent);text-align:center;line-height:1.2;padding-bottom:10px;margin-bottom:8px;border-bottom:1px solid var(--line)}
.rows{display:flex;flex-direction:column;justify-content:space-around;flex:1;min-height:0}
.row{display:flex;align-items:baseline;padding:0 2px}
.row .l{font-size:40px;font-weight:700;white-space:nowrap}
.row .l small{font-size:27px;color:var(--ink2);font-weight:500;margin-right:10px}
.row .lead{flex:1;min-width:24px;margin:0 14px;border-bottom:3px dotted var(--ink2);transform:translateY(-10px);opacity:.75}
.row .t{font-size:44px;font-weight:700;white-space:nowrap}
.row.past .l,.row.past .t,.row.past small{color:var(--past)}
.row.past .lead{border-color:var(--past);opacity:.6}
.row.nextrow .l,.row.nextrow .t{color:var(--accent)}
.row.gap{margin-top:8px;padding-top:10px;border-top:1px solid var(--soft)}
.zmanim .row .l{font-size:38px}
.zmanim .row .t{font-size:42px}

/* Shabbos block (main block for a Shabbos-only shul) */
.tefillos .rows{justify-content:space-evenly}
.tefillos.shabmain .ptitle{font-size:54px}
.tefillos.shabmain .row .l{font-size:46px}
.tefillos.shabmain .row .t{font-size:52px}
.tefillos.shabmain .row.gap{margin-top:4px;padding-top:6px}
.weeknote{margin-top:8px;padding-top:12px;border-top:1px solid var(--line);text-align:center;font-size:31px;color:var(--ink2);font-weight:500}
.weeknote span{white-space:nowrap}
.weeknote b{color:var(--ink);font-weight:700;margin-right:6px}
.weeknote i{font-style:normal;color:var(--ink2);margin:0 16px}

/* countdown box (per-shul option, off for Zera Shimshon) */
.next{padding:10px 18px 12px;margin-bottom:14px;text-align:center;border:2px solid var(--accent);background:var(--tint)}
.nlabel{font-size:28px;color:var(--ink2);font-weight:500}
.nmain{display:flex;justify-content:center;align-items:baseline;gap:24px;font-size:58px;font-weight:900;line-height:1.15}
.nmain .t{color:var(--accent)}
.nin{font-size:42px;font-weight:700;color:var(--accent)}
.next.soon{border-width:4px}
.tefillos.shab .ptitle{font-size:42px}
.tefillos.shab .row .l{font-size:38px}
.tefillos.shab .row .t{font-size:42px}
.row.week .l{font-size:33px;color:var(--ink2)} .row.week .t{font-size:38px}
.subhead{font-size:32px;color:var(--accent);text-align:center;margin-top:6px;font-weight:700;border-top:1px solid var(--line);padding-top:8px}

/* announcements */
.annbox{flex:1;position:relative;min-height:0}
.ann-item{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  opacity:0;transition:opacity 1.2s ease;padding:10px 8px}
.ann-item.on{opacity:1}
.ann-item h3{font-size:52px;font-weight:900;color:var(--accent);margin-bottom:20px}
.ann-item p{font-size:46px;font-weight:700;line-height:1.5;white-space:pre-line}
.ann-item.big p{font-size:74px;font-weight:900;line-height:1.3}
.ann-item .tag{margin-top:24px;font-size:26px;color:var(--ink2);border:1px solid var(--ink2);padding:0 14px 2px;font-weight:500}
.dots{display:flex;justify-content:center;gap:12px;height:18px;align-items:center;direction:rtl}
.dots i{width:9px;height:9px;border-radius:50%;background:var(--soft)}
.dots i.on{background:var(--ink)}

/* flyer items (image / PDF page): the whole page, never cropped or stretched */
.ann-item.media{inset:0 -22px;padding:2px 0 0;justify-content:flex-start}
.ann-item.media .fw{position:relative;flex:1;width:100%;min-height:0}
.ann-item.media img,.ann-item.media canvas{position:absolute;inset:0;margin:auto;display:block;max-width:100%;max-height:100%;
  width:auto;height:auto;object-fit:contain;border:1px solid var(--soft);background:#fff}
.ann-item.media .meta{flex:none;height:30px;display:flex;align-items:flex-end;justify-content:center;gap:18px;font-size:22px;color:var(--ink2);font-weight:500}
.ann-item.media .meta .tag{margin:0;font-size:20px}
.ann-item.bad{display:none}
.panel.ann .ptitle,.panel.ann .dots{transition:opacity .8s ease,margin .8s ease,max-height .8s ease;max-height:120px}
.panel.ann.showmedia .ptitle{opacity:0;max-height:0;padding:0;margin:0;border-width:0}
.panel.ann.showmedia .dots{opacity:0;max-height:0}
.panel.ann.showmedia{padding-top:10px;padding-bottom:10px}

/* ===== לימוד היומי band (config learning: {...}) ===== */
.learning{flex:none;height:68px;margin-top:14px;display:flex;align-items:center;gap:0;padding:0 30px;min-width:0}
.learning .ltitle{flex:none;font-size:42px;font-weight:900;color:var(--accent);line-height:1;white-space:nowrap;
  padding-left:28px;margin-left:28px;border-left:1px solid var(--line)}
.learning .llist{flex:1;min-width:0;display:flex;align-items:baseline;justify-content:center;gap:0;white-space:nowrap;overflow:hidden;
  font-size:40px;font-weight:700;color:var(--ink);line-height:1.2}
.learning .li{white-space:nowrap}
.learning .li b{font-weight:500;color:var(--ink2);margin-left:10px}
.learning .llist i{font-style:normal;color:var(--accent);font-size:.5em;margin:0 30px;transform:translateY(-.25em);display:inline-block}
.theme-A .learning{border:1.5px solid var(--line);border-radius:12px}
.theme-B .learning{border-top:1px solid var(--soft);border-bottom:1px solid var(--soft)}
#stage.haslearn footer{height:46px;padding-top:6px}

/* footer */
footer{height:64px;display:flex;align-items:flex-end;justify-content:space-between;padding-top:10px}
footer .addr{font-size:26px;color:var(--ink2);font-weight:500;direction:ltr}
footer .status{font-size:22px;color:var(--accent);direction:ltr}
footer .logo{height:44px;width:auto;opacity:.55}

/* ===== A: printed poster ===== */
#stage.theme-A::before{content:"";position:absolute;inset:16px;border:3px solid var(--line);border-radius:14px;pointer-events:none}
#stage.theme-A::after{content:"";position:absolute;inset:24px;border:1px solid var(--line);border-radius:9px;pointer-events:none}
.theme-A .rule{border-top:3px double var(--line);height:4px}
.theme-A .panel{border:1.5px solid var(--line);border-radius:12px}
.theme-A .tefillos{border:4px double var(--line)}
.theme-A .shul-logo{filter:none}

/* ===== B: clean white ===== */
#stage.theme-B{padding:44px 70px 32px}
#stage.theme-B::before{content:"";position:absolute;inset:20px;border:1px solid var(--soft);pointer-events:none}
.theme-B .rule{border-top:2px solid var(--line)}
.theme-B .panel{padding:8px 34px 14px}
.theme-B .zmanim,.theme-B .tefillos{border-left:1px solid var(--soft)}
.theme-B main{gap:0}
.theme-B main{grid-template-columns:560px 670px 1fr}
.theme-B .ptitle{border-bottom:2px solid var(--accent)}
.theme-B .parsha{color:var(--ink)}
.theme-B .row .lead{border-bottom-width:2px;opacity:.6}

/* offline and today's times were never saved: say so plainly instead of showing old times */
.offnote{margin:auto;text-align:center;font-size:46px;line-height:1.35;font-weight:700;color:var(--accent)}
.offnote small{display:block;margin-top:14px;font-size:24px;font-weight:400;direction:ltr;color:inherit;opacity:.8}

/* לימוד היומי on two lines when many cycles are on (e.g. Daf Yomi + Mishna + Dirshu ×2) */
.learning.two{height:100px;margin-top:10px}
.learning.two .llist{flex-direction:column;align-items:center;justify-content:center;row-gap:4px}
.learning .lrow{display:flex;align-items:baseline;justify-content:center;white-space:nowrap}
#stage.haslearn .learning.two ~ footer{height:42px;padding-top:4px}
#stage.learn2 .panel{padding-top:12px;padding-bottom:12px}
#stage.learn2 .row{line-height:1.12}
#stage.learn2 .zmanim .row .l{font-size:35px}
#stage.learn2 .zmanim .row .t{font-size:39px}
#stage.learn2 .tefillos.shabmain .row .l{font-size:43px}
#stage.learn2 .tefillos.shabmain .row .t{font-size:48px}
#stage.learn2 .weeknote{font-size:28px;padding-top:8px;margin-top:6px}

/* ===== v7: hourly weather strip in the header (config weather.show) ===== */
.wx{display:flex;align-items:stretch;flex:none;margin-right:auto;padding-right:26px;border-right:1px solid var(--soft);direction:rtl;height:150px}
.wx .wh{width:62px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:4px 0}
.wx .whr{font-size:21px;font-weight:500;color:var(--ink2);white-space:nowrap;line-height:1}
.wx .wnow .whr{color:var(--accent);font-weight:700}
.wx svg{width:44px;height:44px;display:block;overflow:visible}
.wx .wt{font-size:34px;font-weight:700;color:var(--ink);line-height:1;white-space:nowrap}
.wx .wsun{fill:none;stroke:var(--accent);stroke-width:2.6}
.wx .wray line{stroke:var(--accent);stroke-width:2.6;stroke-linecap:round}
.wx .wcloud{fill:var(--paper);stroke:var(--ink2);stroke-width:2.4;stroke-linejoin:round}
.wx .wdrop{stroke:var(--ink2);stroke-width:2.4;stroke-linecap:round}
.wx .wflake{fill:var(--ink2);font-size:16px;font-weight:700;font-family:sans-serif}
.wx .wbolt{fill:var(--accent)}
.theme-B .wx{border-right-color:var(--soft)}

/* ===== v7: custom background picture: panels sit on a paper-coloured card so text stays readable ===== */
#stage.hasbg{background-size:cover;background-position:center}
#stage.hasbg header.top,#stage.hasbg .panel,#stage.hasbg .learning,#stage.hasbg footer{background:var(--panelbg)}
#stage.hasbg header.top{border-radius:12px;padding:0 20px}
#stage.hasbg footer{border-radius:8px;padding:4px 16px 0}
/* sans fonts (Heebo / Assistant) run wider than Frank Ruhl: a hair smaller so nothing clips */
#stage[data-font="heebo"] .row .l,#stage[data-font="assistant"] .row .l{letter-spacing:-.3px}
#stage[data-font="heebo"] .parsha{font-size:78px}

/* ---------- v9: yahrzeit board + sponsor slides ---------- */
.ner{width:22px;height:36px;flex:none}
.ner .fl{fill:var(--accent);opacity:.9}.ner .fi{fill:var(--paper,#f7f1e3);opacity:.85}
.ner .wk,.ner .bs{stroke:var(--ink);stroke-width:1.6;stroke-linecap:round}
.ner .bd{fill:none;stroke:var(--ink);stroke-width:1.6}
.yz-row{display:flex;align-items:center;gap:16px;padding:9px 0;border-bottom:1px solid var(--line)}
.yz-row:last-child{border-bottom:0}
.yz-ner{flex:none;display:flex}
.yz-nm{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
.yz-nm b{font-weight:700;font-size:34px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.yz-nm small{font-size:22px;color:var(--ink2);font-weight:500;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.yz-when{flex:none;display:flex;flex-direction:column;align-items:flex-end;text-align:left;line-height:1.2}
.yz-when b{font-size:28px;font-weight:700;color:var(--accent)}
.yz-when small{font-size:22px;color:var(--ink2);font-weight:500}
.yz-none{text-align:center;color:var(--ink2);font-size:28px;padding:14px 0}
/* slide */
.ann-item.yzs{justify-content:flex-start;padding:4px 6px 0}
.yzs .yz-head{display:flex;align-items:center;justify-content:center;gap:18px;margin:6px 0 14px}
.yzs .yz-head .ner{width:30px;height:50px}
.yzs .yz-head h3{margin:0;font-size:50px;line-height:1.1}
.yzs .yz-sub{font-size:26px;color:var(--ink2);font-weight:500;margin-top:4px}
.yzs .yz-list{width:100%;text-align:right;border-top:2px solid var(--accent);border-bottom:2px solid var(--accent);padding:2px 4px}
.yzs .yz-row{padding:12px 0}
.yzs .yz-nm b{font-size:36px;white-space:normal;line-height:1.2}
.yzs .yz-meta{margin-top:10px;display:flex;gap:16px;align-items:center;font-size:22px;color:var(--ink2)}
.yzs .yz-meta .tag{margin:0;font-size:20px}
.yzs .yz-foot{margin-top:auto;padding:8px 0 4px;font-size:30px;letter-spacing:2px;color:var(--accent);font-weight:700}
/* permanent panel under the הודעות box */
.yzp{flex:none;margin-top:8px;padding-top:8px;border-top:2px solid var(--accent);position:relative}
.yzp-t{display:flex;align-items:center;justify-content:center;gap:12px;font-size:29px;font-weight:900;color:var(--accent);margin-bottom:2px}
.yzp-t .ner{width:18px;height:30px}
.yzp-t .tag{font-size:18px;color:var(--ink2);border:1px solid var(--ink2);padding:0 10px 1px;font-weight:500}
.yzp-pg{display:none}.yzp-pg.on{display:block;animation:yzfade 1s ease}
@keyframes yzfade{from{opacity:0}to{opacity:1}}
.yzp .yz-row{padding:4px 0;gap:12px}
.yzp .yz-nm b{font-size:25px;white-space:normal;line-height:1.15}.yzp .yz-nm small{font-size:17px;margin-top:0}
.yzp .yz-when b{font-size:22px}.yzp .yz-when small{font-size:17px}
.yzp .ner{width:16px;height:27px}
.panel.ann.withyz .ann-item p{font-size:40px}
.panel.ann.withyz .ann-item.big p{font-size:60px}
.panel.ann.withyz.showmedia .yzp{margin-top:6px}
/* sponsor slide */
.ann-item.spon{padding:6px 4px}
.sp-card{box-sizing:border-box;width:100%;height:100%;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  border:2px solid var(--accent);outline:1px solid var(--accent);outline-offset:-9px;border-radius:6px;padding:22px 26px}
.sp-type{font-size:48px;font-weight:900;color:var(--accent);line-height:1.1}
.sp-orn{display:flex;align-items:center;gap:14px;color:var(--accent);width:60%;margin:4px 0 10px}
.sp-orn i{flex:1;height:1px;background:var(--accent)}.sp-orn b{font-size:16px;font-weight:400}
.sp-ph{flex:0 1 auto;min-height:0;max-height:34%;display:flex;justify-content:center;margin-bottom:8px}
.sp-ph img{max-height:100%;max-width:80%;object-fit:contain}
.ann-item .sp-he{font-size:40px;font-weight:700;line-height:1.4;white-space:pre-line}
.ann-item .sp-en{font-size:26px;font-weight:500;line-height:1.35;color:var(--ink2);font-family:Georgia,"Times New Roman",serif;margin-top:10px;white-space:pre-line}
.sp-card .tag{margin-top:14px}
/* small kiddush line in the Shabbos block */
.kline{margin-top:8px;padding-top:8px;border-top:1px solid var(--line);text-align:center;font-size:27px;color:var(--ink2);font-weight:500;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.yzs .yz-list{margin-top:4px}

/* ===== v10: zmanim checklist — fast day / Erev Pesach rows, many rows shrink to fit ===== */
.zhead{font-size:30px;color:var(--accent);text-align:center;font-weight:900;line-height:1.15;padding:2px 0 0}
.zsep{flex:none;height:0;border-top:1px solid var(--soft);margin:4px 0}
.row.sp .l,.row.sp .t{color:var(--accent)}
.row.sp.past .l,.row.sp.past .t{color:var(--past)}
.zmanim .rows.many{justify-content:space-evenly}
.zmanim .rows.many .row{line-height:1.1}
/* ===== v10: simchas (מזל טוב) slide + small panel ===== */
.ann-item.sms{padding:6px 4px}
.sm-card{box-sizing:border-box;width:100%;height:100%;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  border:2px solid var(--accent);outline:1px solid var(--accent);outline-offset:-9px;border-radius:6px;padding:20px 26px}
.sm-mt{font-size:64px;font-weight:900;color:var(--accent);line-height:1.05;letter-spacing:1px}
.sm-card .sp-orn{margin:2px 0 8px}
.sm-list{width:100%;display:flex;flex-direction:column;align-items:center}
.sm-e{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%}
.sm-ty{font-size:30px;font-weight:700;color:var(--ink2);letter-spacing:1px;margin-bottom:2px}
.ann-item .sm-he{font-size:42px;font-weight:900;line-height:1.3;white-space:pre-line}
.sm-wh{font-size:30px;font-weight:700;color:var(--accent);margin-top:6px}
.sm-loc{display:flex;align-items:center;justify-content:center;gap:10px;font-size:30px;font-weight:500;margin-top:2px}
.sm-loc .pin{width:17px;height:24px;flex:none}.sm-loc .pin path{fill:none;stroke:var(--accent);stroke-width:1.6}.sm-loc .pin circle{fill:var(--accent)}
.sm-note{font-size:26px;color:var(--ink2);font-weight:500;margin-top:4px;white-space:pre-line}
.sm-div{width:40%;height:1px;background:var(--line);margin:16px 0}
.sm-card .yz-meta{margin-top:10px;display:flex;gap:16px;align-items:center;font-size:22px;color:var(--ink2)}
.sm-card .yz-meta .tag{margin:0;font-size:20px}
.smp-t{font-size:30px}
.smp-e{display:flex;flex-direction:column;align-items:center;text-align:center;padding:4px 0;line-height:1.2;border-bottom:1px solid var(--line)}
.smp-e:last-child{border-bottom:0}
.smp-ty{font-size:19px;color:var(--ink2);font-weight:700}
.smp-he{font-size:25px;font-weight:700}
.smp-wh{font-size:20px;color:var(--accent);font-weight:700}

/* ===== v11: brand footer — KehillaLive logo + contact line (owner setting; empty = logo only) ===== */
footer .brand{display:flex;align-items:center;gap:16px;flex:none}
footer .logo{height:48px;opacity:.8}
footer .bline{font-size:26px;font-weight:700;color:var(--ink2);white-space:nowrap;letter-spacing:.3px;opacity:.9}
#stage.haslearn footer .logo{height:44px}
#stage.haslearn footer .bline{font-size:23px}
#stage.haslearn .learning.two ~ footer .logo{height:36px}

/* ===== v11: multi-minyan layout (config layout:"multiMinyan") ===== */
.mm{display:none}
#stage.mm main,#stage.mm .learning{display:none!important}
#stage.mm .mm{display:flex;flex-direction:column;flex:1;min-height:0}
#stage.mm footer{height:60px;padding-top:8px}
#stage.mm footer .logo{height:54px}
/* a lower header leaves the room to the board */
#stage.mm header.top{height:178px}
#stage.mm .shul-logo{height:160px}
#stage.mm .shul h1{font-size:96px;white-space:nowrap}
#stage.mm .parsha{font-size:62px}
#stage.mm .hebdate{font-size:42px;margin-top:2px}
#stage.mm .engdate{font-size:26px}
#stage.mm #hm{font-size:132px}
#stage.mm .clock.analog .aclock{width:166px;height:166px}
#stage.mm .clock.analog #hm{font-size:68px}
#stage.mm .clock.analog #ampm{font-size:32px}
#stage.mm .rule{margin:6px 0 0}
.mm-z{display:flex;justify-content:center;align-items:baseline;flex-wrap:nowrap;font-size:30px;color:var(--ink2);font-weight:500;padding:8px 0 10px;border-bottom:1px solid var(--soft);white-space:nowrap}
.mm-z:empty{display:none}
.mm-z b{color:var(--ink);font-weight:700;margin-right:12px}
.mm-z .hi b{color:var(--accent)}
.mm-z i{font-style:normal;margin:0 22px;color:var(--soft)}
.mm-body{flex:1;display:flex;gap:34px;padding-top:18px;min-height:0}
/* the board */
.mm-board{flex:1 1 auto;display:flex;flex-direction:column;min-width:0;min-height:0}
.mm-bh{display:flex;align-items:baseline;justify-content:space-between;font-size:56px;font-weight:900;color:var(--accent);line-height:1.1;padding:0 10px 10px;border-bottom:2px solid var(--line)}
.mm-bsub{font-size:30px;color:var(--ink2);font-weight:500}
.mm-next{list-style:none;flex:1;display:flex;flex-direction:column;min-height:0}
.mm-next li{flex:1 1 0;max-height:132px;display:grid;grid-template-columns:200px 250px 1fr 270px;align-items:center;padding:0 18px;border-bottom:1px solid var(--soft)}
.mm-next li.first{flex-grow:1.18;max-height:156px;background:var(--tint);border:2px solid var(--line);border-radius:12px;margin:10px 0 4px}
.mm-next .mtf{font-size:46px;font-weight:700;white-space:nowrap;overflow:hidden}
.mm-next .mtm{font-size:80px;font-weight:900;line-height:1;text-align:right}
.mm-next li.first .mtm{font-size:94px}
.mm-next .mrm{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;min-width:0}
.mm-next .mnt{font-size:26px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.mm-next .mcd{font-size:42px;font-weight:700;color:var(--ink2);text-align:left;white-space:nowrap;overflow:hidden}
.mm-next li.first .mcd{color:var(--accent)}
.mm-next li.now .mcd{color:var(--paper);background:var(--accent);border-radius:40px;text-align:center;padding:4px 0 8px;justify-self:end;width:190px}
.mm-next li.empty{display:block;flex:none;font-size:40px;color:var(--ink2);border:0;padding-top:40px;text-align:center}
.mpill{display:inline-block;color:#f7f1e3;border-radius:999px;font-weight:700;white-space:nowrap;line-height:1}
.mm-next .mpill{font-size:40px;padding:11px 30px 15px}
.mm-next .mrm.hasmeta{gap:4px}
.mm-next .mrm.hasmeta .mpill{font-size:32px;padding:7px 24px 10px}
/* the side area: day strip / זמני היום / slides, turning every ~15 s */
.mm-side{flex:0 0 690px;display:flex;flex-direction:column;min-height:0;border:1.5px solid var(--line);border-radius:12px;padding:12px 22px 10px;background:linear-gradient(var(--paper),var(--tint))}
#stage.hasbg .mm-side,#stage.hasbg .mm-board{background:var(--panelbg)}
.mm-sh{font-size:38px;font-weight:900;color:var(--accent);text-align:center;line-height:1.2;padding-bottom:6px;border-bottom:1.5px solid var(--soft)}
.mm-sb{flex:1;min-height:0;position:relative;display:flex;flex-direction:column;padding-top:6px;overflow:hidden}
.mm-sb.in{animation:mmIn .9s ease}
@keyframes mmIn{from{opacity:0}to{opacity:1}}
.mm-sf{flex:none;display:flex;flex-direction:column;align-items:center;gap:6px;padding-top:6px}
.mm-legend{display:none;justify-content:center;gap:12px;flex-wrap:wrap}
.mm-side[data-kind="strip"] .mm-legend{display:flex}
.mm-legend .mpill{font-size:20px;padding:5px 14px 7px}
.mstrip{display:flex;flex-direction:column;gap:4px}
.mgrp .mgh{display:flex;justify-content:space-between;align-items:baseline;font-size:30px;font-weight:900;color:var(--accent);border-bottom:1px solid var(--soft);padding-bottom:2px;margin-top:2px}
.mgrp .mgh small{font-size:20px;color:var(--ink2);font-weight:500}
.mgrp.done{opacity:.5}
.mgrp.done .mgh{border-bottom:0;color:var(--ink2)}
.mgrp.done .mgh small{font-size:24px}
.mgrid{display:grid;grid-template-columns:1fr 1fr;column-gap:20px}
.mgrid+.mgrid{margin-top:2px}
.mrow{display:flex;align-items:center;gap:10px;height:37px;padding:0 8px;border-radius:6px;font-size:27px;min-width:0}
.mrow .mt{font-weight:700;width:78px;flex:none;text-align:right}
.mrow.lbl .mt{width:auto;white-space:nowrap}
.mrow .mpill{font-size:19px;padding:5px 12px 7px}
.mrow .mn{font-size:19px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mrow.wide{grid-column:1 / -1}
.mrow.wide .mn{font-size:22px}
.mrow.past{opacity:.38}
.mrow.nxt{background:var(--accent);color:var(--paper)}
.mrow.nxt .mn{color:var(--soft)}
.mempty{font-size:34px;color:var(--ink2);text-align:center;padding-top:40px}
.mzm{flex:1;justify-content:space-evenly}
.mzm .row .l{font-size:38px}
.mzm .row .t{font-size:42px}
.mann{flex:1;position:relative;min-height:0}
.mann .ann-item{transition:none}
#stage.mmshab .mm-bh{color:var(--ink)}

/* ===== v11.1: box sizes (config sizes) — large / extra large: rows a little tighter so the bigger text fits ===== */
#stage .panel.zmanim.zbig{padding-top:12px;padding-bottom:12px}
#stage .panel.zmanim.zbig .ptitle{padding-bottom:6px;margin-bottom:4px}
#stage .zmanim.zbig .row,#stage .mzm.zbig .row{line-height:1.04}

/* ===== v16: box order · זמני היום inside הודעות · sponsorship box (layout.js; the columns are set by app.js applyLayout) ===== */
.panel.spbox{display:none}
#stage.reord main > .panel{min-width:0}
#stage.reord.theme-B .panel{border-left:1px solid var(--soft)}
#stage.reord.theme-B .panel.lastcol{border-left:0}
.panel.spbox{padding-top:14px;padding-bottom:12px}
.panel.spbox .ptitle{font-size:44px;padding-bottom:6px;margin-bottom:8px}
.spbox .ann-item.media{inset:0 -20px}
.spbox .ann-item.media .meta{display:none}
.spbox .ann-item.media img,.spbox .ann-item.media canvas{box-shadow:0 1px 6px rgba(60,40,20,.18)}
.spbox .dots{margin-top:8px}
.ann-item.zms{justify-content:flex-start;align-items:stretch;padding:2px 0 4px}
.zms .zms-h{flex:none;font-size:48px;font-weight:900;color:var(--accent);text-align:center;line-height:1.2;padding-bottom:10px;margin:0 0 8px;border-bottom:1px solid var(--line)}
.zms .zmrows{flex:1;min-height:0;text-align:right}
.zms .row .l{font-size:38px}
.zms .row .t{font-size:42px}
.zms .zmrows.many{justify-content:space-evenly}
.zms .zmrows.many .row{line-height:1.1}
.zms.zbig .row{line-height:1.04}

/* v19: note line in a times list — full-width text, no time column and no dots (row field noTime:true) */
.row.note{justify-content:center;align-items:center;text-align:center;padding:2px 6px}
.row.note .nt{font-size:35px;font-weight:600;color:var(--accent);line-height:1.18;white-space:normal;overflow-wrap:anywhere}
.tefillos.shabmain .row.note .nt{font-size:40px}
.tefillos.shab .row.note .nt{font-size:33px}
#stage.learn2 .tefillos.shabmain .row.note .nt{font-size:37px}
.weeknote .wnote{display:block;color:var(--accent);font-weight:600;white-space:normal;line-height:1.2;margin-top:4px}

