/* Oct 15: anything marked hidden stays hidden (row styles were overriding it, so the group search didn't filter) */
[hidden] { display: none !important; }
/* ---- palette: calm, warm, easy on the eyes (light) ---- */
:root{
  color-scheme:light;
  --brand:#2f6f69; --brand-2:#3b7f78; --brand-ink:#1f4f4a; --brand-soft:#e2eeea; --on-brand:#ffffff; --fill:#2f6f69; --fill-2:#3a7b74; --on-fill:#ffffff;
  --ink:#2a2a30; --muted:#625d66; --line:#e9e2d6; --bg:#f6f2ea; --card:#fffdf8; --chip:#efe9df; --track:#d3cbbf;
  --hdr:#e7efeb; --hdr-ink:#1f3d3a; --hdr-btn:rgba(255,255,255,.7);
  --ok:#2c6b47; --ok-soft:#e3efe5; --ok-ink:#24573a; --warn:#7f5410; --warn-soft:#f7ebd5; --warn-ink:#6a460c;
  --bad:#a63d3a; --bad-soft:#f6e1de; --bad-ink:#7d2b29; --on-bad:#ffffff;
  --wa:#257a4c; --wa-soft:#e0f0e5; --wa-ink:#1d6340;
  --glass:rgba(255,253,248,.96); --overlay:rgba(40,34,26,.42); --toast-bg:#2f3433; --toast-ink:#f7f4ee;
  --radius:22px; --shadow:0 1px 2px rgba(60,45,20,.05),0 4px 16px rgba(60,45,20,.06); --glow:0 4px 14px rgba(47,111,105,.18);
}
/* ---- dark mode: chosen in Settings, or following the device ---- */
:root[data-theme="dark"]{
  color-scheme:dark;
  --brand:#86c5bb; --brand-2:#7bbab0; --brand-ink:#b7e2da; --brand-soft:#253a38; --on-brand:#0f2422; --fill:#2f6b65; --fill-2:#2c625d; --on-fill:#eaf6f3;
  --ink:#e9e6e0; --muted:#aaa59d; --line:#363a3f; --bg:#181a1d; --card:#23262a; --chip:#2e3236; --track:#4a4f55;
  --hdr:#20302e; --hdr-ink:#dcefea; --hdr-btn:rgba(255,255,255,.08);
  --ok:#8fcfa6; --ok-soft:#1e3327; --ok-ink:#a9dcbb; --warn:#e3b76f; --warn-soft:#382d1b; --warn-ink:#ecc98d;
  --bad:#f0958c; --bad-soft:#3d2523; --bad-ink:#f5b1aa; --on-bad:#2a0f0d;
  --wa:#7fcf9c; --wa-soft:#1f3527; --wa-ink:#a6dfba;
  --glass:rgba(32,35,39,.96); --overlay:rgba(0,0,0,.55); --toast-bg:#e9e6e0; --toast-ink:#1b1d20;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 4px 16px rgba(0,0,0,.25); --glow:none;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --brand:#86c5bb; --brand-2:#7bbab0; --brand-ink:#b7e2da; --brand-soft:#253a38; --on-brand:#0f2422; --fill:#2f6b65; --fill-2:#2c625d; --on-fill:#eaf6f3;
    --ink:#e9e6e0; --muted:#aaa59d; --line:#363a3f; --bg:#181a1d; --card:#23262a; --chip:#2e3236; --track:#4a4f55;
    --hdr:#20302e; --hdr-ink:#dcefea; --hdr-btn:rgba(255,255,255,.08);
    --ok:#8fcfa6; --ok-soft:#1e3327; --ok-ink:#a9dcbb; --warn:#e3b76f; --warn-soft:#382d1b; --warn-ink:#ecc98d;
    --bad:#f0958c; --bad-soft:#3d2523; --bad-ink:#f5b1aa; --on-bad:#2a0f0d;
    --wa:#7fcf9c; --wa-soft:#1f3527; --wa-ink:#a6dfba;
    --glass:rgba(32,35,39,.96); --overlay:rgba(0,0,0,.55); --toast-bg:#e9e6e0; --toast-ink:#1b1d20;
    --shadow:0 1px 2px rgba(0,0,0,.3),0 4px 16px rgba(0,0,0,.25); --glow:none;
  }
}
/* ---- text size (Settings → Text size), remembered on this device ---- */
html{font-size:1rem}
html[data-size="small"]{font-size:.875rem}
html[data-size="large"]{font-size:1.139rem}
html[data-size="xl"]{font-size:1.278rem}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:1rem/1.55 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;min-height:100vh}
button,input,textarea,select{font:inherit;color:inherit}
a{color:var(--brand)}
:focus-visible{outline:3px solid var(--brand-2);outline-offset:2px;border-radius:12px}
.app{max-width:640px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;padding-bottom:calc(96px + env(safe-area-inset-bottom))}
.app.no-tabs{padding-bottom:24px}
.boot{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted);min-height:80vh}

/* header */
.top{position:sticky;top:0;z-index:5;background:var(--hdr);color:var(--hdr-ink);padding:calc(14px + env(safe-area-inset-top)) 18px 18px;border-radius:0 0 24px 24px;box-shadow:0 2px 10px rgba(0,0,0,.06)}
.top-row{display:flex;align-items:center;gap:12px}
.top h1{font-size:1.222rem;margin:0;letter-spacing:-.01em;flex:1}
.top p{margin:6px 0 0;opacity:.88;font-size:0.889rem}
.logo-mark{width:42px;height:42px;border-radius:14px;background:var(--fill);display:grid;place-items:center;flex:none}
.logo-mark svg{width:24px;height:24px;fill:var(--on-fill)}
.logo-mark.big{width:72px;height:72px;border-radius:22px;background:var(--fill);box-shadow:var(--glow)}
.logo-mark.big svg{width:40px;height:40px}
.icon-btn{width:50px;height:50px;border-radius:16px;border:0;background:var(--hdr-btn);display:grid;place-items:center;cursor:pointer;flex:none;color:inherit}
.icon-btn svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.icon-btn.dark{background:var(--brand-soft);color:var(--brand-ink)}

main{padding:18px 16px;display:flex;flex-direction:column;gap:16px}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}
.card h2{font-size:1.111rem;margin:0 0 4px}
.card .sub{color:var(--muted);margin:0 0 14px;font-size:0.889rem}
.section-title{font-size:0.833rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:6px 4px -4px}

label.field{display:block;font-weight:600;margin:0 0 6px;font-size:0.944rem}
.input,textarea.input,select.input{width:100%;border:2px solid var(--line);background:var(--card);border-radius:16px;padding:14px 16px;font-size:1rem;outline:none;transition:border-color .15s}
.input:focus{border-color:var(--brand)}
textarea.input{min-height:150px;resize:vertical;line-height:1.45}
.stack{display:flex;flex-direction:column;gap:14px}
.row{display:flex;gap:10px;align-items:center}
.row > *{min-width:0}
.grow{flex:1}
.hint{color:var(--muted);font-size:0.833rem;margin:6px 2px 0}
.counter{display:flex;justify-content:space-between;color:var(--muted);font-size:0.833rem;margin-top:6px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 22px;border-radius:18px;border:0;font-weight:700;font-size:1rem;cursor:pointer;text-decoration:none;transition:transform .05s,filter .15s;user-select:none}
.btn:active{transform:scale(.985)}
.btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.btn.primary{background:var(--fill);color:var(--on-fill);box-shadow:var(--glow)}
.btn.primary:disabled{filter:grayscale(.6) opacity(.55);box-shadow:none;cursor:not-allowed}
.btn.soft{background:var(--brand-soft);color:var(--brand-ink)}
.btn.ghost{background:transparent;color:var(--brand-ink);border:2px solid var(--line)}
.btn.danger{background:var(--bad-soft);color:var(--bad)}
.btn.wa{background:var(--wa);color:var(--on-brand)}
.btn.block{width:100%}
.btn.huge{min-height:66px;font-size:1.111rem;border-radius:20px}
.btn.small{min-height:44px;padding:0 14px;font-size:0.889rem;border-radius:14px}

/* group chips */
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{border:2px solid var(--line);background:var(--card);border-radius:999px;padding:10px 16px;font-weight:600;font-size:0.944rem;cursor:pointer;display:inline-flex;gap:8px;align-items:center;min-height:48px}
.chip .n{background:var(--bg);color:var(--muted);border-radius:999px;padding:1px 9px;font-size:0.778rem}
.chip[aria-pressed="true"]{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}
.chip[aria-pressed="true"] .n{background:var(--card);color:var(--brand-ink)}

.switch{display:flex;align-items:center;gap:14px;cursor:pointer;padding:6px 0}
.switch input{position:absolute;opacity:0;width:1px;height:1px}
.switch .track{width:54px;height:32px;border-radius:999px;background:var(--track);position:relative;flex:none;transition:background .15s}
.switch .track::after{content:"";position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .15s}
.switch input:checked + .track{background:var(--brand)}
.switch input:checked + .track::after{transform:translateX(22px)}
.switch input:focus-visible + .track{outline:3px solid var(--brand-2);outline-offset:2px}

.banner{border-radius:16px;padding:14px 16px;display:flex;gap:12px;align-items:flex-start;font-size:0.889rem}
.banner.warn{background:var(--warn-soft);color:var(--warn-ink)}
.banner.ok{background:var(--ok-soft);color:var(--ok-ink)}
.banner.info{background:var(--brand-soft);color:var(--brand-ink)}
.banner b{display:block;margin-bottom:2px}
.banner svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-top:1px}

/* lists */
.list{display:flex;flex-direction:column}
.item{display:flex;align-items:center;gap:14px;padding:12px 4px;border-bottom:1px solid var(--line);min-height:68px;background:none;border-left:0;border-right:0;border-top:0;width:100%;text-align:left;cursor:pointer}
.item:last-child{border-bottom:0}
.avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:0.944rem;flex:none;color:#fff}
.item .meta{flex:1;min-width:0}
.item .name{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item .small{color:var(--muted);font-size:0.833rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item .chev{color:var(--muted);opacity:.6;font-size:1.444rem;line-height:1}
.empty{text-align:center;color:var(--muted);padding:26px 10px}
.empty .big-emoji{font-size:2.444rem;display:block;margin-bottom:8px}
.search{position:relative}
.search svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:20px;height:20px;fill:none;stroke:var(--muted);stroke-width:2.2}
.search .input{padding-left:46px}
.count-pill{background:var(--brand-soft);color:var(--brand-ink);font-weight:700;border-radius:999px;padding:2px 12px;font-size:0.833rem}

.status{display:inline-flex;align-items:center;gap:6px;font-size:0.778rem;font-weight:700;border-radius:999px;padding:4px 10px;white-space:nowrap;flex:none}
.status.sent,.status.queued,.status.done,.status.opened{background:var(--ok-soft);color:var(--ok)}
.status.failed{background:var(--bad-soft);color:var(--bad)}
.status.pending{background:var(--chip);color:var(--muted)}
.status.skipped{background:var(--warn-soft);color:var(--warn)}

.hist{padding:16px;border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);cursor:pointer;border:0;text-align:left;width:100%;display:block;color:var(--ink)}
.hist .when{color:var(--muted);font-size:0.833rem;display:flex;justify-content:space-between;gap:8px}
article.hist{cursor:default}
.hist-open{display:block;width:100%;padding:0;margin:0;border:0;background:none;color:inherit;font:inherit;text-align:start;cursor:pointer;border-radius:12px}
.hist-open:focus-visible{outline:3px solid var(--brand);outline-offset:4px}
.hist-open .bar{display:block}
.hist-title{display:block;margin-top:8px;font-weight:700;font-size:1.111rem;line-height:1.3;color:var(--ink);unicode-bidi:plaintext;text-align:start;overflow-wrap:anywhere}
.no-title{color:var(--muted);font-weight:600;font-style:italic}
.hist-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.hist-acts .btn{flex:1 1 auto}
.h-search{margin-bottom:6px}
.h-count{margin:0 4px 10px}
.h-count:empty{display:none}
#h-main{display:flex;flex-direction:column;gap:14px}
.d-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.d-title h2{margin:0;font-size:1.222rem;line-height:1.3;unicode-bidi:plaintext;text-align:start;overflow-wrap:anywhere;flex:1;min-width:0}
.d-acts{flex-wrap:wrap}
.d-acts .btn{flex:1 1 auto;white-space:nowrap}
.req{font-weight:600;font-size:0.778rem;color:var(--muted);background:var(--chip);border-radius:999px;padding:2px 8px;margin-left:6px;vertical-align:1px}
.input.bad{border-color:var(--bad)}
#ttl-err{margin-top:6px}
.hist .msg{margin:8px 0 10px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line}
.bar{height:10px;border-radius:999px;background:var(--chip);overflow:hidden}
.bar > i{display:block;height:100%;background:var(--ok);border-radius:999px;transition:width .3s}
.bar.big{height:16px}

.bubble{background:var(--brand-soft);color:var(--ink);border-radius:20px 20px 20px 6px;padding:14px 16px;white-space:pre-wrap;word-break:break-word}

/* hand-send rows */
.send-row{display:flex;align-items:center;gap:10px;padding:12px 2px;border-bottom:1px solid var(--line)}
.send-row:last-child{border-bottom:0}
.send-row .meta{flex:1;min-width:0}
.send-row.done .name{color:var(--ok)}
.send-row .name{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.send-row .small{color:var(--muted);font-size:0.833rem;white-space:nowrap}
.send-row .mini.wa{width:52px;padding:0}
.mini{min-height:48px;min-width:48px;padding:0 12px;border-radius:14px;border:0;font-weight:700;font-size:0.833rem;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;cursor:pointer}
.mini svg{width:20px;height:20px}
.mini.sms{background:var(--brand-soft);color:var(--brand-ink)}
.mini.wa{background:var(--wa-soft);color:var(--wa-ink)}

/* tabs */
.tabs{position:fixed;bottom:0;left:0;right:0;z-index:6;background:var(--glass);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:8px 8px calc(8px + env(safe-area-inset-bottom))}
.tabs-in{max-width:640px;margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr);gap:2px}
.tab{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 2px;border-radius:14px;font-size:0.778rem;font-weight:650;color:var(--muted);cursor:pointer;min-height:60px}
.tab svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tab[aria-current="page"]{color:var(--brand);background:var(--brand-soft)}

/* sheet */
.overlay{position:fixed;inset:0;background:var(--overlay);z-index:20;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s}
.sheet{background:var(--bg);width:100%;max-width:640px;max-height:92vh;overflow:auto;border-radius:26px 26px 0 0;padding:10px 16px calc(20px + env(safe-area-inset-bottom));animation:up .2s ease-out}
.sheet .grab{width:44px;height:5px;border-radius:9px;background:var(--track);margin:2px auto 10px}
.sheet-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.sheet-head h2{flex:1;margin:0;font-size:1.222rem}
@keyframes up{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@media (min-width:700px){.overlay{align-items:center}.sheet{border-radius:26px;max-height:86vh}}

.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:var(--chip);padding:5px;border-radius:16px}
.seg button{border:0;background:none;border-radius:12px;padding:10px 4px;font-weight:650;font-size:0.833rem;cursor:pointer;min-height:46px;color:var(--muted)}
.seg button[aria-selected="true"]{background:var(--card);color:var(--brand-ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}

.check-row{display:flex;align-items:center;gap:14px;padding:10px 4px;border-bottom:1px solid var(--line);cursor:pointer;min-height:58px}
.check-row:last-child{border-bottom:0}
.check-row input{width:26px;height:26px;accent-color:var(--brand);flex:none}
.check-row .meta{flex:1;min-width:0}
.check-row .small{color:var(--muted);font-size:0.833rem}

.toast{position:fixed;left:50%;bottom:calc(104px + env(safe-area-inset-bottom));transform:translateX(-50%) translateY(20px);background:var(--toast-bg);color:var(--toast-ink);padding:14px 20px;border-radius:16px;font-size:0.889rem;font-weight:600;opacity:0;pointer-events:none;transition:all .2s;z-index:30;max-width:90vw;text-align:center}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

.center-screen{flex:1;display:flex;flex-direction:column;justify-content:center;padding:28px 20px;gap:20px;min-height:90vh}
.center-screen .hero{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}
.center-screen h1{margin:6px 0 0;font-size:1.667rem;letter-spacing:-.02em}
.center-screen .lead{margin:0;color:var(--muted);font-size:1rem}
.pin{font-size:1.556rem;letter-spacing:.3em;text-align:center}
.steps{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:8px;font-size:0.889rem}
.steps li::marker{color:var(--brand);font-weight:700}
.big-number{font-size:2.444rem;font-weight:800;letter-spacing:-.02em;line-height:1}
.err{color:var(--bad);font-weight:600;font-size:0.889rem;min-height:1px}
.err:empty{display:none}
details.help{border-radius:16px;background:var(--card);border:2px solid var(--line);padding:4px 16px}
details.help summary{cursor:pointer;font-weight:650;padding:10px 0;list-style:none}
details.help summary::-webkit-details-marker{display:none}
details.help summary::after{content:"+";float:right;font-size:1.222rem;line-height:1;color:var(--brand)}
details.help[open] summary::after{content:"–"}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* picture messages */
.photo-att{position:relative;display:flex;gap:14px;align-items:center;border:2px solid var(--line);border-radius:16px;padding:10px;background:var(--card)}
.photo-att img{width:96px;height:96px;object-fit:cover;border-radius:12px;flex:none;background:var(--bg)}
.photo-att.loading{min-height:76px;justify-content:center;color:var(--muted)}
.photo-meta{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:0.889rem}
.photo-meta span{color:var(--muted);font-size:0.833rem}
.photo-x{position:absolute;top:2px;left:2px;width:34px;height:34px;border-radius:50%;border:0;background:rgba(20,18,40,.72);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}
.photo-x svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round}
.link-btn{background:none;border:0;padding:6px 0 0;color:var(--brand);font:inherit;font-weight:600;font-size:0.833rem;text-align:left;cursor:pointer;align-self:flex-start}
.bubble-img{display:block;max-width:100%;max-height:340px;border-radius:14px;margin-bottom:8px;object-fit:contain}
.bubble > div:only-child,.bubble > a:only-child .bubble-img{margin-bottom:0}
.hist-body{display:flex;gap:12px;align-items:flex-start}
.hist-body .msg{flex:1;min-width:0}
.hist-thumb{width:64px;height:64px;object-fit:cover;border-radius:12px;flex:none;margin-top:8px;background:var(--bg)}
/* Yiddish / Hebrew: each line takes the direction of what is written in it */
.bubble,.bubble > div,.hist .msg,.name,.chip,.item .meta,textarea.input,input.input{unicode-bidi:plaintext}
.bubble > div,.hist .msg,.item .meta{text-align:start}
.counter #len,.counter #ttl-len{white-space:nowrap;flex:none;margin-left:10px}

/* chats (added Oct 13) */
.tab{font-size:0.722rem}
.tab-ic{position:relative;display:inline-flex}
.badge{position:absolute;top:-6px;right:-12px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--bad);color:var(--on-bad);font-size:0.667rem;font-weight:800;line-height:20px;text-align:center;box-shadow:0 0 0 2px var(--card);font-style:normal}
.chat-row .meta{display:flex;flex-direction:column;gap:3px}
.chat-top,.chat-bottom{display:flex;align-items:center;gap:8px;min-width:0}
.chat-top .name{flex:1;min-width:0}
.chat-time{color:var(--muted);font-size:0.778rem;flex:none}
.chat-prev{flex:1;min-width:0;unicode-bidi:plaintext;text-align:start}
.chat-row.unread .name{font-weight:800}
.chat-row.unread .chat-prev{color:var(--ink);font-weight:600}
.chat-row.unread .chat-time{color:var(--brand);font-weight:700}
.chat-thumb{width:36px;height:36px;border-radius:8px;object-fit:cover;flex:none;background:var(--bg)}
.count{flex:none;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--brand);color:var(--on-brand);font-size:0.722rem;font-weight:800;line-height:22px;text-align:center}
.chat-main{gap:6px;padding-bottom:110px}
.day-sep{text-align:center;margin:10px 0 4px}
.day-sep span{background:var(--chip);color:var(--muted);font-size:0.722rem;font-weight:650;border-radius:999px;padding:4px 12px}
.sys-line{text-align:center;color:var(--warn);background:var(--warn-soft);font-size:0.778rem;font-weight:600;border-radius:12px;padding:8px 12px;margin:4px 20px}
.cb-row{display:flex;flex-direction:column;align-items:flex-start}
.cb-row.out{align-items:flex-end}
.cb{max-width:82%;padding:10px 14px 6px;border-radius:20px 20px 20px 6px;background:var(--card);color:var(--ink);box-shadow:var(--shadow);white-space:pre-wrap;word-break:break-word;font-size:0.944rem;line-height:1.35}
.cb.out{background:var(--fill);color:var(--on-fill);border-radius:20px 20px 6px 20px}
.cb.out.ann{background:var(--fill-2)}
.cb > div{unicode-bidi:plaintext;text-align:start}
.cb-label{display:block;font-size:0.667rem;font-weight:700;opacity:.85;margin-bottom:4px;letter-spacing:.02em}
.cb-img{display:block;max-width:100%;max-height:280px;border-radius:14px;margin:2px 0 6px;object-fit:cover}
.cb-file{display:block;margin:2px 0 6px;color:inherit}
.cb-time{display:block;font-size:0.667rem;opacity:.7;text-align:end;margin-top:2px}
.cb-err{font-size:0.722rem;color:var(--bad);margin:3px 6px 0}
.composer{position:fixed;left:0;right:0;bottom:0;z-index:6;display:flex;gap:10px;align-items:flex-end;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--glass);backdrop-filter:blur(10px);border-top:1px solid var(--line);max-width:640px;margin:0 auto}
.composer textarea{flex:1;resize:none;min-height:48px;max-height:140px;border-radius:24px;padding:12px 16px;line-height:1.3}
.composer .send-btn{width:52px;height:52px;min-height:52px;border-radius:50%;padding:0;flex:none;display:grid;place-items:center}
.composer .send-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.composer.off{align-items:flex-start;color:var(--muted);font-size:0.833rem}
.composer.off svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:2}

/* home dashboard (added Oct 13) */
.tab{font-size:0.667rem;padding:8px 0;min-height:58px}
.tab svg{width:24px;height:24px}
.tabs-in{grid-template-columns:repeat(6,1fr)}
.banner.bad{background:var(--bad-soft);color:var(--bad-ink)}
.banner svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-top:2px}
.banner b{display:block}
.quick{display:flex;flex-direction:column;gap:10px}
.quick .btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:var(--card);border:0;border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;text-align:left;cursor:pointer;min-height:112px;color:var(--ink);font:inherit}
.tile-big{font-size:1.889rem;font-weight:800;letter-spacing:-.02em;line-height:1.1;color:var(--brand-ink)}
.tile-big small{font-size:1.111rem;font-weight:700;color:var(--muted)}
.tile-label{font-size:0.889rem;font-weight:700}
.tile-sub{font-size:0.778rem;color:var(--muted);line-height:1.3}
.tile.hot{background:var(--fill);color:var(--on-fill)}
.tile.hot .tile-big,.tile.hot .tile-sub{color:var(--on-fill)}
.bad-t{color:var(--bad);font-weight:650}
.sec-h{font-size:1rem;margin:10px 0 2px}
.act-row .meta{flex:1;min-width:0}
.act-kind{font-weight:500;color:var(--muted)}
.act-time{color:var(--muted);font-size:0.778rem;flex:none;align-self:flex-start;margin-top:4px}
.act-time.new{color:var(--brand);font-weight:800}
.quick .row .btn{white-space:nowrap;padding:0 10px;font-size:0.944rem}
.chat-main{padding-bottom:120px}

/* ---- easier on the eyes (Oct 13): more air, calmer surfaces, clearer type ---- */
body{letter-spacing:.005em;-webkit-font-smoothing:antialiased}
h1,h2,h3{line-height:1.25}
main{padding:20px 16px;gap:18px}
.card{padding:20px;border:1px solid transparent}
.card h2{font-size:1.167rem;margin:0 0 6px;font-weight:700}
.card .sub,.hint{font-size:0.889rem;line-height:1.5}
.top{padding:calc(16px + env(safe-area-inset-top)) 18px 18px}
.top h1{font-size:1.278rem;font-weight:700}
.top p{opacity:1;color:var(--muted);font-size:0.889rem;line-height:1.45}
.stack{gap:16px}
.item{padding:14px 4px;min-height:72px;color:var(--ink);border-bottom-color:color-mix(in srgb,var(--line) 70%,transparent)}
.item .small{font-size:0.889rem;margin-top:2px}
.chat-time,.act-time{font-size:0.833rem}
.tile{padding:18px;min-height:120px}
.tile-sub{font-size:0.833rem;line-height:1.4}
.tiles{gap:14px}
.sec-h{font-size:1.111rem;margin:12px 0 4px}
.btn{min-height:58px;border-radius:18px;padding:0 18px}
.btn.small{min-height:48px}
.btn.ghost{border-width:1.5px}
.input,textarea.input,select.input{border-width:1.5px;padding:15px 16px}
.input::placeholder{color:var(--muted);opacity:.75}
.chip{border-width:1.5px;min-height:50px}
details.help{border-width:1.5px}
.photo-att{border-width:1.5px}
.seg button{min-height:50px;font-size:0.889rem}
.banner{line-height:1.5}
.tab{font-size:clamp(13px,0.722rem,13.5px);letter-spacing:0;min-height:62px;gap:4px}
.tab svg{width:25px;height:25px}
.tab[aria-current="page"]{color:var(--brand-ink)}
.toast{font-size:0.944rem}
.cb{font-size:1rem;line-height:1.45}
.bubble{line-height:1.5}
.icon-btn.dark{background:var(--brand-soft)}
@media (min-width:700px){
  .app{max-width:760px}
  .tabs-in{max-width:760px}
  main{padding:24px 24px;gap:20px}
  .composer{max-width:760px}
}
/* display settings */
.seg.opts{grid-template-columns:repeat(3,1fr)}
.seg.opts button{font-size:0.889rem}
.size-demo{margin:0;color:var(--muted)}
/* ---- computer screens (Oct 13): sidebar menu, wider pages, two-pane Chats ----
   Everything below 1024px wide (phones, tablets) stays exactly as it was. */
.side-brand,.tab.tab-desk{display:none}
@media (max-width:1023.98px){.app.no-tabs > .tabs{display:none}}
@media (min-width:1024px){
  :root{--side-w:clamp(252px,16rem,320px);--page-w:1180px}
  .app[data-view]:not([data-view="center"]):not([data-view="sending"]){max-width:none;margin:0;padding:0 0 0 var(--side-w)}
  .app[data-view="sending"]{max-width:840px}
  /* sidebar */
  .tabs,.app.no-tabs > .tabs{position:fixed;top:0;bottom:0;left:0;right:auto;width:var(--side-w);display:flex;flex-direction:column;gap:18px;padding:22px 14px 18px;background:var(--card);backdrop-filter:none;border-top:0;border-right:1px solid var(--line);overflow-y:auto;z-index:6}
  .side-brand{display:flex;align-items:center;gap:12px;padding:2px 8px 18px;border-bottom:1px solid var(--line)}
  .side-brand b{display:block;font-size:1rem;line-height:1.25;color:var(--ink);white-space:nowrap}
  .side-brand small{display:block;font-size:0.778rem;line-height:1.35;color:var(--muted);margin-top:2px}
  .tabs-in{display:flex;flex-direction:column;gap:4px;flex:1;max-width:none;margin:0}
  .tab,.tab.tab-desk{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px;width:100%;min-height:52px;padding:10px 14px;border-radius:14px;font-size:0.944rem;font-weight:650;color:var(--ink);text-align:start}
  .tab.tab-desk{margin-top:auto}
  .tab svg{width:22px;height:22px;flex:none}
  .tab:hover{background:var(--chip)}
  .tab[aria-current="page"]{background:var(--brand-soft);color:var(--brand-ink)}
  .tab .tab-ic{display:contents}
  .tab .badge{position:static;order:2;margin-inline-start:auto;box-shadow:none;min-width:24px;height:24px;line-height:24px;font-size:0.722rem}
  /* page header: part of the page, not a phone bar */
  .top{position:static;background:transparent;color:var(--ink);box-shadow:none;border-radius:0;padding:34px 40px 2px;max-width:var(--page-w);margin:0 auto;width:100%}
  .top h1{font-size:1.667rem;letter-spacing:-.015em}
  .top p{font-size:0.944rem;margin-top:4px}
  .top .logo-mark,.top [data-act="settings"],.app[data-view="settings"] .top [data-act="back"]{display:none}
  .top .icon-btn{background:var(--card);box-shadow:var(--shadow);width:46px;height:46px}
  main{padding:20px 40px 48px;gap:20px;max-width:var(--page-w);margin:0 auto;width:100%}
  .toast{bottom:32px}
  body:has(.app > .tabs) .toast{left:calc(50% + var(--side-w) / 2)}
  .btn:hover{filter:brightness(1.04)}
  .item:hover,.hist:hover,.tile:hover{filter:brightness(.985)}
  :root[data-theme="dark"] .item:hover,:root[data-theme="dark"] .hist:hover,:root[data-theme="dark"] .tile:hover{filter:brightness(1.12)}
  /* narrower, comfortable pages */
  .app[data-view="send"] .top,.app[data-view="send"] main{max-width:800px}
  .app[data-view="settings"] .top,.app[data-view="settings"] main,
  .app[data-view="detail"] .top,.app[data-view="detail"] main,
  .app[data-view="hand"] .top,.app[data-view="hand"] main{max-width:880px}
  /* Home dashboard */
  #home-main{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:22px 24px;align-items:start}
  #home-main > *{grid-column:1 / -1}
  #home-main > .empty{grid-column:1 / -1}
  #home-main > .quick{flex-direction:row;gap:14px}
  #home-main > .quick > .btn{flex:1.3;width:auto}
  #home-main > .quick > .row{flex:2;gap:14px}
  #home-main > .quick .btn.huge{min-height:60px}
  #home-main > .quick .row .btn{min-height:60px}
  #home-main > .tiles{grid-column:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
  #home-main > section.card{grid-column:2;padding:8px 18px !important}
  /* People and Groups: wider, two-column lists */
  .app[data-view="contacts"] main > .row{max-width:520px}
  .app[data-view="contacts"] .search{max-width:520px}
  .app[data-view="contacts"] main > section.card,.app[data-view="groups"] main > section.card{padding:10px 24px !important}
  .app[data-view="contacts"] #c-list,.app[data-view="groups"] main > section.card > .list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));column-gap:32px}
  .app[data-view="contacts"] #c-list > .empty{grid-column:1 / -1}
  .app[data-view="groups"] #g-new{width:auto;align-self:flex-start;padding:0 26px}
  /* Sent: cards in a grid */
  .app[data-view="history"] .h-search{max-width:560px}
  #h-main{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(380px,100%),1fr));gap:18px;align-items:start}
  #h-main > .empty{grid-column:1 / -1}
  /* Chats: list on the left, conversation on the right */
  .app[data-view="chats"]{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}
  .app[data-view="chats"] main{flex:1;min-height:0;padding-bottom:28px}
  .split{display:grid;grid-template-columns:minmax(18rem,0.8fr) minmax(0,1.6fr);gap:20px;height:100%;min-height:0}
  .pane-list,.pane-chat{padding:0;display:flex;flex-direction:column;min-height:0;overflow:hidden}
  .pane-list .list{flex:1;overflow-y:auto;padding:6px 12px}
  .pane-list .chat-row{border-radius:14px;padding:12px 10px;border-bottom:0;margin:2px 0}
  .pane-list .chat-row.sel{background:var(--brand-soft)}
  .pane-list .chat-row.sel .name{color:var(--brand-ink)}
  .pane-note{margin:0;padding:12px 18px 14px;border-top:1px solid var(--line)}
  .pane-head{display:flex;align-items:center;gap:14px;padding:14px 20px;border-bottom:1px solid var(--line)}
  .pane-head .name{font-weight:700;font-size:1.056rem}
  .pane-head .small{color:var(--muted);font-size:0.833rem}
  .pane-msgs{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:16px 24px 18px;background:var(--bg)}
  .pane-msgs .cb{max-width:min(74%,560px)}
  .pane-msgs .cb-img{max-height:320px}
  .pane-chat .composer{position:static;max-width:none;margin:0;backdrop-filter:none;background:var(--card);padding:12px 16px;border-top:1px solid var(--line)}
  .pane-chat .composer.off{padding:16px 20px}
  .pane-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;color:var(--muted);padding:40px}
  .pane-empty .big-emoji{font-size:2.444rem;margin-bottom:6px}
  .pane-empty b{color:var(--ink);font-size:1.111rem}
  .pane-empty span:last-child{max-width:360px}
  /* pop-up sheets: centered dialogs */
  .overlay{align-items:center}
  body:has(.app > .tabs) .overlay{padding-left:var(--side-w)}
  .sheet{max-width:600px;border-radius:26px;max-height:86vh;padding-top:18px}
  .sheet .grab{display:none}
  html[data-size="xl"] #home-main,html[data-size="large"] #home-main{grid-template-columns:minmax(0,1fr)}
  html[data-size="xl"] #home-main > .tiles,html[data-size="xl"] #home-main > section.card,html[data-size="large"] #home-main > .tiles,html[data-size="large"] #home-main > section.card{grid-column:1 / -1}
}
@media (min-width:1024px) and (max-width:1359.98px){
  #home-main{grid-template-columns:minmax(0,1fr)}
  #home-main > .tiles,#home-main > section.card{grid-column:1 / -1}
}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
.seg button[aria-checked="true"]{background:var(--card);color:var(--brand-ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.opt-h{font-size:0.944rem;font-weight:650;margin:0 0 8px}

/* Multi-group picker (Oct 14): tick on chosen groups, live count of people */
.chip.pick .tick{display:none;width:20px;height:20px;border-radius:50%;background:var(--brand);color:#fff;align-items:center;justify-content:center;flex:none}
.chip.pick .tick svg{width:14px;height:14px;stroke:#fff;fill:none;stroke-width:3}
.chip.pick[aria-pressed="true"] .tick{display:inline-flex}
.aud{margin:12px 0 0;padding:10px 14px;border-radius:12px;background:var(--brand-soft);color:var(--brand-ink);font-size:0.944rem;line-height:1.4}
.aud.none{background:var(--bg);color:var(--muted)}
.hist .when .to{min-width:0;text-align:right;overflow-wrap:anywhere}
#grp-err{margin-top:8px}

/* Help video (Oct 15) */
.help-strip{display:flex;align-items:center;gap:12px;width:100%;margin:14px 0 0;padding:12px 16px;border:1.5px solid var(--line, #d9d3c7);border-radius:16px;background:var(--card, #fff);color:inherit;font:inherit;text-align:left;cursor:pointer}
.help-strip svg{width:34px;height:34px;flex:none;fill:none;stroke:var(--brand, #2f6f69);stroke-width:2;color:var(--brand, #2f6f69)}
.help-strip span{display:flex;flex-direction:column;gap:2px}
.help-strip b{font-size:1.05rem}
.help-strip small{opacity:.75}
.help-strip:active{transform:scale(.99)}
a.help-strip{text-decoration:none}
.practice-link{margin:0 0 14px}
main > .help-strip:first-child{margin:0 0 14px}
.sheet.wide{max-width:960px}

/* Cost (Oct 18): "This will cost about $0.64 (1 text × 50 people)" — shown to Jacob only */
.cost-line{display:flex;gap:8px;align-items:flex-start;margin:8px 0 0;padding:10px 14px;border-radius:12px;background:var(--bg);border:1px solid var(--line);font-size:0.944rem;line-height:1.4}
.cost-line[hidden]{display:none}
.cost-line svg{width:20px;height:20px;flex:none;margin-top:1px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;color:var(--brand-ink, currentColor)}
.cost-line b{font-weight:700}
.composer{flex-wrap:wrap}
.cm-cost{flex:1 0 100%;margin:0 6px -4px;font-size:0.778rem;color:var(--muted)}
.cm-cost[hidden]{display:none}
.sys-line.chat-cost{line-height:1.45;color:var(--muted);background:var(--card);border:1px solid var(--line);font-weight:500}
.sys-line.chat-cost span{opacity:.8;font-size:.92em}

/* ---- Scheduled sends (Oct 18) */
.sched-btn svg,#send-btn svg,.sched-when svg,.sec-h svg,.sched-ic svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sched-pick{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sched-pick .field{display:flex;flex-direction:column;gap:6px;font-weight:600}
.sched-pick .input{min-height:52px;font-size:1rem}
.sched-when{display:flex;align-items:center;gap:8px;margin:0;font-size:1rem;color:var(--ink)}
.sched-when svg{width:20px;height:20px;color:var(--brand)}
.sched-warn{margin:0}
.sched-card{padding:6px 14px 10px}
.sec-h svg{width:18px;height:18px;vertical-align:-3px;margin-right:4px;color:var(--brand)}
.sched-list{display:flex;flex-direction:column}
.sched-item{padding:12px 0;border-top:1px solid var(--line)}
.sched-item:first-child{border-top:0}
.sched-top{display:flex;gap:12px;align-items:flex-start}
.sched-ic{width:40px;height:40px;border-radius:50%;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;flex:none}
.sched-ic svg{width:22px;height:22px}
.sched-main{min-width:0;flex:1}
.sched-when-l{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sched-title{font-weight:600;margin-top:2px;unicode-bidi:plaintext}
.sched-words{color:var(--muted);font-size:.889rem;unicode-bidi:plaintext;overflow-wrap:anywhere}
.sched-meta{color:var(--muted);font-size:.833rem;margin-top:2px}
.sched-note{color:var(--bad-ink);font-size:.833rem;margin-top:4px}
.sched-tag{font-size:.75rem;font-weight:700;border-radius:999px;padding:2px 9px;background:var(--chip);color:var(--muted)}
.sched-tag.warn{background:var(--warn-soft);color:var(--warn-ink)}
.sched-tag.bad{background:var(--bad-soft);color:var(--bad-ink)}
.sched-tag.going{background:var(--ok-soft);color:var(--ok-ink)}
.sched-acts{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0 52px}
.sched-acts .btn.small{min-height:40px;padding:0 12px}
.sched-foot{margin:6px 0 2px;font-size:.778rem}
#h-sched .sched-card{margin-bottom:12px}

/* ---- Broadcast Type + voice calls (Oct 18) */
.seg.bt,.voice-box .seg{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;background:var(--chip);border-radius:16px;padding:4px}
.seg-b{appearance:none;border:0;background:transparent;color:var(--muted);font:inherit;font-weight:600;min-height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;padding:0 6px;text-align:center;line-height:1.15}
.seg-b svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.seg-b[aria-checked="true"]{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08),0 2px 8px rgba(0,0,0,.08)}
.seg.small .seg-b{min-height:42px;font-size:.833rem}
.voice-box{border:1px solid var(--line);border-radius:16px;padding:12px;background:var(--bg)}
.voice-box .field svg,.call-prev svg,.sched-kind svg,.rec-btn svg,.sec-h svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.voice-body{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.voice-body textarea{min-height:96px}
.voice-body .btn.small{align-self:flex-start}
.call-frame{margin:10px 0 0;font-size:.778rem}
.rec-btn svg{width:22px;height:22px}
.rec-live{display:flex;align-items:center;gap:10px;font-size:1.1rem}
.rec-live .btn{margin-left:auto}
.rec-dot{width:14px;height:14px;border-radius:50%;background:var(--bad);animation:recblink 1s infinite}
@keyframes recblink{50%{opacity:.25}}
.rec-done{display:flex;flex-direction:column;gap:6px}
.rec-done audio,.call-prev audio{width:100%;max-width:100%;height:40px}
.rec-meta{display:flex;justify-content:space-between;align-items:center;gap:8px}
.call-prev{display:flex;gap:10px;align-items:flex-start;background:var(--brand-soft);color:var(--brand-ink);border-radius:16px;padding:12px}
.call-prev>svg{width:22px;height:22px;flex:none;margin-top:2px}
.call-prev>div{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}
.sched-kind{font-size:.778rem;font-weight:700;color:var(--brand);margin-top:2px}

/* Send by text (Oct 18): admins list in Settings, admin switch on a person */
.admin-list { display: grid; gap: 0; }
.admin-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 0; border-top: 1px solid var(--line); }
.admin-item:first-child { border-top: 0; }
.admin-item .meta { min-width: 0; }
.admin-item .meta b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-row { padding-top: 4px; }

/* "Can get texts" off (Oct 18) */
.tag-notext{display:inline-block;margin-top:3px;padding:1px 8px;border-radius:999px;background:#fdecc8;color:#7a4b00;font-size:.78rem;font-weight:600}

/* ---- Family calendar (Oct 18) */
.muted-t{color:var(--muted);font-weight:500}
@media (min-width:1024px){ .tab.tab-desk.tab-mid{margin-top:0} }
.cal-home{padding:10px 14px 12px}
.cal-home-h{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cal-mini{display:flex;flex-direction:column}
.cal-mini-row{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:baseline;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:10px 2px;cursor:pointer;color:var(--ink);width:100%}
.cal-mini-row:last-child{border-bottom:0}
.cal-mini-row b{font-size:0.889rem;color:var(--brand-ink);white-space:nowrap}
.cal-mini-t{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-mini-h{grid-column:2;color:var(--muted);font-size:0.833rem}
.ev-card{padding:4px 14px}
.ev-list{display:flex;flex-direction:column}
.ev-item{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}
.ev-list .ev-item:last-child{border-bottom:0}
.ev-item.past{opacity:.75}
.ev-date{flex:none;width:58px;border-radius:14px;background:var(--brand-soft);color:var(--brand-ink);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 0;align-self:flex-start}
.ev-mon{font-size:0.722rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.ev-day{font-size:1.556rem;font-weight:800;line-height:1.1}
.ev-wd{font-size:0.722rem;font-weight:650}
.ev-main{flex:1;min-width:0}
.ev-title{font-weight:750;font-size:1.056rem;line-height:1.3;overflow-wrap:anywhere}
.ev-type{display:inline-block;font-size:0.722rem;font-weight:700;border-radius:999px;padding:2px 9px;background:var(--chip);color:var(--muted);vertical-align:2px;white-space:nowrap}
.ev-type.t-simcha{background:#f6ead0;color:#7a5410}
.ev-type.t-yahrzeit{background:#e7e4ee;color:#4b4466}
.ev-type.t-birthday{background:#f5e1e6;color:#8a3b52}
:root[data-theme="dark"] .ev-type.t-simcha,:root[data-theme="dark"] .ev-type.t-yahrzeit,:root[data-theme="dark"] .ev-type.t-birthday{background:var(--chip);color:var(--ink)}
.ev-when{color:var(--ink);font-size:0.889rem;margin-top:3px}
.ev-heb{color:var(--brand-ink);font-weight:650}
.ev-soon{color:var(--brand)}
.ev-place,.ev-note,.ev-rep,.ev-rem{color:var(--muted);font-size:0.861rem;margin-top:3px;overflow-wrap:anywhere}
.ev-note{white-space:pre-wrap}
.ev-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.ev-acts .btn svg{width:18px;height:18px}
.ev-past{padding:6px 14px}
.ev-past summary{cursor:pointer;font-weight:700;padding:10px 2px;color:var(--muted)}
.ev-dt{gap:10px;align-items:flex-end}
.ev-dt .input{min-width:0}
