/* Section «Календарь и чат». Everything is scoped under #ph.xcal (set by the section hook) so shared class
   names from calendar-chat.html (.fld, .crow, .emp…) cannot leak into other sections. */
#ph.xcal i[data-i]{display:inline-grid;place-items:center;font-style:normal;flex:none}
#ph.xcal i[data-i] svg{width:18px;height:18px}
#ph.xcal .pill i[data-i] svg{width:13px;height:13px}
#ph.xcal .chip i[data-i] svg{width:16px;height:16px}
#ph.xcal .row.between{justify-content:space-between}
#ph.xcal .chip .ell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px}
#ph.xcal .hd .ibtn{flex:none}

/* month grid */
#ph.xcal .mhead{display:flex;align-items:center;justify-content:space-between;margin:-4px -6px 4px}
#ph.xcal .mhead b{font:700 18px/1 var(--font-d)}
#ph.xcal .mhead [aria-disabled="true"]{opacity:.3}
#ph.xcal .mcal{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
#ph.xcal .mcal .wd{font:600 12px/1 var(--font);color:var(--ink-3);text-align:center;padding:4px 0 6px;text-transform:uppercase}
#ph.xcal .mcal button{border:0;background:transparent;border-radius:12px;min-height:46px;padding:4px 0;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;color:var(--ink);overflow:hidden;min-width:0}
#ph.xcal .mcal button b{font:600 16px/1 var(--font);font-variant-numeric:tabular-nums;width:28px;height:24px;display:grid;place-items:center;border-radius:999px}
#ph.xcal .mcal button.om{color:var(--ink-3)}
#ph.xcal .mcal button.om b{font-weight:500}
#ph.xcal .mcal button.today b{background:var(--accent);color:var(--on-accent)}
#ph.xcal .mcal button.sel{background:var(--surface-2);box-shadow:inset 0 0 0 2px var(--ink)}
#ph.xcal :is(.mcal,.week) button:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
#ph.xcal .dt{display:flex;gap:2px;height:6px;align-items:center;max-width:36px}
#ph.xcal .dt i,#ph.xcal .week .dt i{width:6px;height:6px;border-radius:50%;background:currentColor;display:block;margin:0}
#ph.xcal .dt i.pr{background:transparent;box-shadow:inset 0 0 0 1.5px currentColor}
#ph.xcal .dt em{font:700 10px/6px var(--font);color:var(--ink-2);font-style:normal;margin-left:1px}
#ph.xcal .week button.on .dt em{color:inherit}
#ph.xcal .week button.on .dt i{box-shadow:0 0 0 1.5px var(--surface-1)}
#ph.xcal .week button.on .dt i.pr{box-shadow:inset 0 0 0 1.5px currentColor}
#ph.xcal .week button{min-height:56px}
#ph.xcal .week button.td:not(.on) b{text-decoration:underline;text-underline-offset:3px}
#ph.xcal .week button .dt{margin-top:3px}
#ph.xcal .wkrow{display:flex;align-items:center;gap:0;margin:0 -12px;flex:none}
#ph.xcal .wkrow .week{flex:1;min-width:0}
#ph.xcal .wkrow .ibtn{width:34px;min-width:34px}
/* event kinds: colour + icon + label, never colour alone */
#ph.xcal .k-s{color:var(--ink);--kc:var(--ink)}
#ph.xcal .k-t{color:var(--wait-ink);--kc:var(--wait-ink)}
#ph.xcal .k-c{color:var(--info-ink);--kc:var(--info-ink)}
#ph.xcal .k-r{color:var(--attn-line);--kc:var(--attn-line)}
#ph.xcal .k-p{color:var(--late-ink);--kc:var(--late-ink)}
#ph.xcal .k-w{color:var(--ink-3);--kc:var(--ink-3)}
#ph.xcal .week button.on :is(.k-s,.k-t,.k-c,.k-r,.k-p){color:var(--on-accent)}
#ph.xcal .clg{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:13px;color:var(--ink-2);padding-top:10px;border-top:1px solid var(--line)}
#ph.xcal .clg>span{display:inline-flex;align-items:center;gap:5px}
#ph.xcal .clg .dt i{width:8px;height:8px}
#ph.xcal .dsum{font-size:13.5px;color:var(--ink-2);margin-top:8px}
#ph.xcal .dsum b{color:var(--ink);font-weight:600}

/* agenda */
#ph.xcal .dayh{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:4px}
#ph.xcal .dayh h4{font-size:16px}
#ph.xcal .dayh small{font-size:13px;color:var(--ink-3)}
#ph.xcal .ev2{display:grid;grid-template-columns:52px 1fr;gap:10px;align-items:center}
#ph.xcal .ev2 .t{font:600 15px/1.2 var(--font);font-variant-numeric:tabular-nums;color:var(--ink)}
#ph.xcal .ev2 .t small{display:block;font:500 12.5px/1.3 var(--font);color:var(--ink-3)}
#ph.xcal .ev2 .c{position:relative;display:flex;align-items:center;gap:10px;min-height:60px;padding:8px 8px 8px 14px;min-width:0;border-radius:16px;overflow:hidden;cursor:pointer;color:var(--ink)}
#ph.xcal .ev2 .c::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:4px;border-radius:0 3px 3px 0;background:var(--kc)}
#ph.xcal .ev2 .c.pr::before{background:transparent;box-shadow:inset 0 0 0 1.5px var(--kc)}
#ph.xcal .ev2 .c.free{background:transparent;box-shadow:none;border:1.5px dashed var(--ink-3)}
#ph.xcal .ev2 .c.free::before{display:none}
#ph.xcal .ev2 .c.past{opacity:.62}
#ph.xcal .ev2 .c:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
#ph.xcal .ev2 .tx{flex:1;min-width:88px}
#ph.xcal .ev2 .tx b{display:block;font-size:16px;font-weight:600;line-height:1.25}
#ph.xcal .ev2 .tx span{display:block;font-size:14px;color:var(--ink-2);line-height:1.3}
#ph.xcal .ev2 .tx span>i[data-i]{display:inline-grid;vertical-align:-2px;margin-right:5px;color:var(--kc)}
#ph.xcal .ev2 .tx span i[data-i] svg{width:15px;height:15px}
#ph.xcal .ev2 .tx em{font-style:normal;font-weight:600}
#ph.xcal em.ok{color:var(--ok)}#ph.xcal em.wt{color:var(--wait-ink)}#ph.xcal em.out{color:var(--out-ink)}#ph.xcal em.at{color:var(--attn-ink)}#ph.xcal em.nw{color:var(--info-ink);font-style:normal;font-weight:600}
#ph.xcal .ev2 .go2{color:var(--ink-3)}
#ph.xcal .av.xs{width:30px;height:30px;border-radius:10px;font-size:12px}
#ph.xcal .strike{text-decoration:line-through;text-decoration-thickness:1.5px;color:var(--ink-3)}
#ph.xcal .ans{display:flex;gap:6px;flex:none}
#ph.xcal .ans button{width:44px;height:44px;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;padding:0}
#ph.xcal .ans .y{background:var(--accent);color:var(--on-accent)}
#ph.xcal .ans .n{background:var(--surface-2);color:var(--ink)}
#ph.xcal .ans button svg{width:20px;height:20px}
#ph.xcal .txtb{min-height:44px;border:0;background:var(--surface-2);border-radius:12px;padding:0 12px;font:600 14.5px/1 var(--font);color:var(--ink);cursor:pointer;flex:none}
#ph.xcal .done-l{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--ok);font-weight:600;padding:2px 2px}
#ph.xcal .done-l svg{width:18px;height:18px}
/* swipe: the row slides, the underlay names the action */
#ph.xcal .swp{position:relative;border-radius:16px;overflow:hidden;touch-action:pan-y;min-width:0}
#ph.xcal .swp .under{position:absolute;inset:0;display:none;align-items:center;gap:8px;padding:0 16px;font:600 15px/1 var(--font);border-radius:16px}
#ph.xcal .swp .under.r{background:var(--ok-soft);color:var(--ok)}
#ph.xcal .swp .under.l{justify-content:flex-end;background:var(--out);color:var(--out-ink)}
#ph.xcal .swp.go-r .under.r,#ph.xcal .swp.go-l .under.l{display:flex}
#ph.xcal .swp.armed .under{font-weight:700}
#ph.xcal .swp .c{z-index:1;transition:transform .2s var(--ease);touch-action:pan-y}
#ph.xcal .swp.drag .c{transition:none;box-shadow:var(--sh-2)}
/* list stops above the floating FAB and fades out as the scroll cue */
#ph.xcal .scr.fabpad{padding-bottom:12px;margin-bottom:64px;-webkit-mask-image:linear-gradient(#000 calc(100% - 24px),transparent);mask-image:linear-gradient(#000 calc(100% - 24px),transparent)}
#ph.xcal:not(.has-tabs)>.fab.float{bottom:24px}
#ph.xcal .skel{background:var(--surface-2);border-radius:8px;height:14px;display:block;animation:xskp 1.4s ease-in-out infinite}
#ph.xcal .skel.w60{width:60%}#ph.xcal .skel.w80{width:80%}
@keyframes xskp{50%{opacity:.5}}
#ph.xcal .emp{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:16px 8px}
#ph.xcal .emp.sm{padding:10px}
#ph.xcal .emp .ico{width:56px;height:56px;border-radius:18px;background:var(--surface-2);color:var(--ink-2);display:grid;place-items:center}
#ph.xcal .emp .ico svg{width:26px;height:26px}
#ph.xcal .emp h4{font-size:18px;margin:0}
#ph.xcal .emp p{margin:0;color:var(--ink-2);font-size:15px;max-width:290px}
#ph.xcal .offl{display:flex;gap:10px;align-items:flex-start;background:var(--surface-3);color:var(--ink);border-radius:14px;padding:10px 12px;font-size:15px;flex:none}
#ph.xcal .offl small{display:block;font-size:13px;color:var(--ink-2)}
#ph.xcal .mini{min-height:44px;font-size:15px;padding:0 14px;flex:none}
#ph.xcal .mini.full{flex:1 0 auto}
#ph.xcal .lnk2{border:0;background:none;padding:0 2px;min-height:44px;font:600 15px var(--font);color:var(--ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer;align-self:flex-start}
#ph.xcal .lnk2.danger{color:var(--danger)}
#ph.xcal .fhint{font-size:13.5px;color:var(--ink-3)}

/* ⋯ menu popover */
#ph.xcal .mnu-catch{position:absolute;inset:0;z-index:29;background:transparent;border:0;cursor:default}
#ph.xcal .mnu{position:absolute;right:12px;top:104px;z-index:30;width:300px;max-width:calc(100% - 24px);background:var(--surface-1);color:var(--ink);border-radius:18px;box-shadow:var(--sh-2);padding:6px}
#ph.xcal .mnu button{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;border:0;background:none;border-radius:12px;padding:6px 12px;font:500 16px var(--font);color:var(--ink);text-align:left;cursor:pointer}
#ph.xcal .mnu button:hover,#ph.xcal .mnu button:focus-visible{background:var(--surface-2)}
#ph.xcal .mnu button small,#ph.xcal .mlist2 button small{display:block;font-size:13px;color:var(--ink-3);font-weight:500}
#ph.xcal .mnu hr,#ph.xcal .mlist2 hr{border:0;border-top:1px solid var(--line);margin:4px 8px}
#ph.xcal .mnu i[data-i],#ph.xcal .mlist2 i[data-i]{color:var(--ink-2)}
#ph.xcal .mnu .tog,#ph.xcal .mlist2 .tog{display:inline-block;pointer-events:none}
#ph.xcal .mlist2{display:flex;flex-direction:column}
#ph.xcal .mlist2 button{display:flex;align-items:center;gap:12px;min-height:52px;border:0;background:none;border-radius:12px;padding:6px 4px;font:500 16px var(--font);color:var(--ink);text-align:left;cursor:pointer}

/* sheets */
#ph.xcal .psheet .dock{position:sticky;bottom:-18px;background:var(--surface-1);padding:8px 0 4px;margin-top:4px;z-index:2}
#ph.xcal .sht{display:flex;align-items:center;gap:10px}
#ph.xcal .sht h4{font-size:20px;flex:1;min-width:0;margin:0;display:block}
#ph.xcal .sht h4 small{display:block;font:500 14px/1.3 var(--font);color:var(--ink-2)}
#ph.xcal .plate.evp{display:flex;flex-direction:column;gap:12px}
#ph.xcal .cmpt{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font:700 22px/1.1 var(--font-d);font-variant-numeric:tabular-nums}
#ph.xcal .cmpt .strike{font-weight:600}
#ph.xcal .fld{display:flex;flex-direction:column;gap:6px}
#ph.xcal .fld>label,#ph.xcal .fld>.lb{font:600 13px/1.2 var(--font);color:var(--ink-2)}
#ph.xcal .fc{min-height:48px;border:0;border-radius:var(--r-ctl);background:var(--surface-2);padding:0 14px;display:flex;align-items:center;gap:10px;font:16px var(--font);color:var(--ink);width:100%}
#ph.xcal .fc input{flex:1;min-width:0;border:0;background:transparent;font:16px var(--font);color:var(--ink);padding:0;height:46px;outline:none}
#ph.xcal .fc textarea{flex:1;border:0;background:transparent;font:16px/1.4 var(--font);color:var(--ink);resize:none;padding:12px 0;min-height:72px;outline:none}
#ph.xcal .fc:focus-within{box-shadow:inset 0 0 0 2px var(--focus)}
#ph.xcal .fc input::placeholder,#ph.xcal .fc textarea::placeholder{color:var(--ink-3)}
#ph.xcal .fc.err{box-shadow:inset 0 0 0 2px var(--danger)}
#ph.xcal .ferr{font-size:14px;color:var(--danger);display:flex;gap:6px;align-items:flex-start}
#ph.xcal .ferr svg{width:16px;height:16px}
#ph.xcal .frow2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#ph.xcal .chips{display:flex;gap:6px;flex-wrap:wrap}
#ph.xcal .chips .chip,#ph.xcal .pickd .chip{min-height:44px;font-size:15px}
#ph.xcal .chip.dayc{min-width:44px;justify-content:center}
#ph.xcal .pickd{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:2px -16px 0;padding:2px 16px}
#ph.xcal .pickd::-webkit-scrollbar{display:none}
#ph.xcal .pickd .chip{flex:none}
#ph.xcal .sw{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:16px;min-height:44px}
#ph.xcal .seg button{min-height:40px}
#ph.xcal .pick{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:2px 16px 4px}
#ph.xcal .pick::-webkit-scrollbar{display:none}
#ph.xcal .pick button{flex:none;width:78px;border:0;background:var(--surface-2);border-radius:16px;padding:8px 2px;display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;color:var(--ink);font:600 13px/1.2 var(--font);text-align:center}
#ph.xcal .pick button small{font:500 11.5px/1.2 var(--font);color:var(--ink-3);white-space:nowrap}
#ph.xcal .pick button[aria-checked="true"]{box-shadow:inset 0 0 0 2px var(--ink);background:var(--surface-1)}
#ph.xcal .pick .av{width:40px;height:40px;border-radius:13px}
#ph.xcal .dline{display:flex;align-items:center;gap:10px;background:var(--surface-2);border-radius:14px;padding:10px 12px;min-height:56px;border:0;width:100%;text-align:left;cursor:pointer;color:var(--ink)}
#ph.xcal .dline div{flex:1;min-width:0;font-size:15px;line-height:1.35}
#ph.xcal .dline small{display:block;font-size:12.5px;color:var(--ink-3);font-weight:600}
#ph.xcal .dline .ed{font-weight:600;font-size:15px;flex:none;text-decoration:underline;text-underline-offset:3px}
#ph.xcal .smart{display:flex;gap:6px;align-items:flex-start;font-size:14px;color:var(--ink-2)}
#ph.xcal .smart svg{width:16px;height:16px}
#ph.xcal [aria-disabled="true"].btn{opacity:.45;cursor:not-allowed}

/* lists of people */
#ph.xcal .crow{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line);width:100%;background:none;border-left:0;border-right:0;border-bottom:0;text-align:left;cursor:pointer;color:var(--ink);font:inherit;min-height:56px}
#ph.xcal .crow:first-child,#ph.xcal #whoList>.crow:first-child{border-top:0}
#ph.xcal .crow[hidden]{display:none}
#ph.xcal .crow .tx{flex:1;min-width:0}
#ph.xcal .crow .tx b{display:block;font-size:16px;font-weight:600}
#ph.xcal .crow .tx span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:14px;line-height:1.35;color:var(--ink-2)}
#ph.xcal .crow .tx span.unr{color:var(--ink);font-weight:600}
#ph.xcal .crow .tx span.bad{color:var(--danger);font-weight:600}
#ph.xcal .crow .rt2{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none;font-size:13px;color:var(--ink-3)}
#ph.xcal .nelist{max-height:260px;overflow-y:auto}
#ph.xcal .ub{min-width:22px;height:22px;border-radius:11px;background:var(--accent);color:var(--on-accent);font:700 12.5px/22px var(--font);text-align:center;padding:0 6px;display:inline-block}
#ph.xcal .ibtn.bd{position:relative}
#ph.xcal .ibtn.bd .ub{position:absolute;top:-4px;right:-4px;background:var(--danger);color:#fff}

/* chat */
#ph.xcal .body.chatb{gap:8px}
#ph.xcal .thr{gap:8px}
#ph.xcal .thr>*{flex:none}
#ph.xcal .dday{align-self:center;font:600 12.5px/1 var(--font);color:var(--ink-2);background:var(--surface-3);border-radius:999px;padding:6px 10px;margin:6px 0 2px}
#ph.xcal .mm{font-size:12.5px;color:var(--ink-3);display:flex;align-items:center;gap:4px;margin-top:-4px}
#ph.xcal .mm.r{align-self:flex-end}
#ph.xcal .mm.l{align-self:flex-start}
#ph.xcal .mm svg{width:15px;height:15px}
#ph.xcal .mm .rd{color:var(--ok)}
#ph.xcal .msg{font-size:16px;line-height:1.4;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#ph.xcal .msg.fail{opacity:.72}
#ph.xcal .failr{align-self:flex-end;display:flex;align-items:center;gap:6px;color:var(--danger);font-size:14px;font-weight:600;margin-top:-6px}
#ph.xcal .failr svg{width:16px;height:16px}
#ph.xcal .failr button{min-height:44px;border:0;background:none;color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:3px;padding:0 4px;cursor:pointer}
#ph.xcal .rx{display:inline-flex;align-items:center;gap:4px;background:var(--surface-1);box-shadow:var(--sh-1);border-radius:999px;padding:3px 8px;font-size:13px;margin-top:-10px;position:relative;color:var(--ink)}
#ph.xcal .rx.r{align-self:flex-end;margin-right:10px}
#ph.xcal .rx.l{align-self:flex-start;margin-left:10px}
#ph.xcal .sysl{align-self:center;display:flex;align-items:center;gap:6px;font:500 13.5px/1.3 var(--font);color:var(--ink-2);text-align:center;max-width:90%;background:none;border:0;min-height:36px;cursor:pointer;padding:0 6px}
#ph.xcal .sysl i[data-i]{color:var(--attn-line)}
#ph.xcal .sysl svg{width:15px;height:15px}
#ph.xcal .plate.att{padding:10px 12px;max-width:86%;display:flex;flex-direction:column;gap:6px}
#ph.xcal .att.r{align-self:flex-end}
#ph.xcal .att.l{align-self:flex-start}
#ph.xcal .att .kd{display:flex;align-items:center;gap:6px;font:600 12.5px/1 var(--font);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3)}
#ph.xcal .att .kd svg{width:15px;height:15px}
#ph.xcal .att b{font-size:16px;font-weight:600;line-height:1.3}
#ph.xcal .att p{margin:0;font-size:16px;line-height:1.4}
#ph.xcal .att .fx{font-size:14px;color:var(--ink-2);line-height:1.4}
#ph.xcal .att .go{display:inline-flex;align-items:center;gap:2px;min-height:44px;margin-bottom:-8px;font-size:15px;font-weight:600;color:var(--ink);background:none;border:0;padding:0;cursor:pointer;align-self:flex-start}
#ph.xcal .att .go svg{width:16px;height:16px}
#ph.xcal .att .acts{display:flex;gap:8px}
#ph.xcal .att .thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
#ph.xcal .att .thumbs span{aspect-ratio:3/4;border-radius:10px;background:var(--surface-2);position:relative;overflow:hidden;display:block}
#ph.xcal .att .thumbs span svg{position:absolute;inset:0;width:100%;height:100%}
#ph.xcal .att .thumbs span em{position:absolute;left:4px;bottom:4px;font:600 11.5px/1 var(--font);font-style:normal;background:var(--surface-1);color:var(--ink);border-radius:6px;padding:3px 5px}
#ph.xcal .sref{display:grid;grid-template-columns:60px 1fr;gap:10px;align-items:center}
#ph.xcal .sref .th{width:60px;height:60px;border-radius:12px;overflow:hidden;box-shadow:var(--sh-img)}
#ph.xcal .sref .th img{width:100%;height:100%;object-fit:cover;display:block}
#ph.xcal .vthumb{position:relative;border:0;padding:0;border-radius:12px;overflow:hidden;aspect-ratio:16/10;width:100%;cursor:pointer;background:var(--surface-2)}
#ph.xcal .vthumb img{width:100%;height:100%;object-fit:cover;display:block}
#ph.xcal .vthumb span{position:absolute;inset:0;margin:auto;width:48px;height:48px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;display:grid;place-items:center}
#ph.xcal .vthumb span svg{width:22px;height:22px}
#ph.xcal .vph{width:100%;aspect-ratio:16/10;border-radius:12px;background:var(--surface-2);display:grid;place-items:center;text-align:center;font-size:13.5px;color:var(--ink-2);padding:10px}
#ph.xcal .qrow{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:2px 16px;flex:none}
#ph.xcal .qrow::-webkit-scrollbar{display:none}
#ph.xcal .qrow .chip{flex:none;background:var(--surface-1);box-shadow:var(--sh-1);min-height:44px;font-size:15px}
#ph.xcal .starters{display:flex;flex-direction:column;gap:6px;flex:none}
#ph.xcal .starters .chip{background:var(--surface-1);box-shadow:var(--sh-1);white-space:normal;min-height:44px;padding:8px 14px;text-align:left;font-size:15px;justify-content:flex-start}
#ph.xcal .comp2{display:flex;gap:8px;align-items:center;flex:none}
#ph.xcal .comp2 .inp{flex:1}
#ph.xcal .comp2 .ibtn.send{background:var(--accent);color:var(--on-accent)}
#ph.xcal .aid{display:flex;flex-direction:column;gap:8px;flex:none;max-height:40%;overflow-y:auto}
#ph.xcal .aid p{margin:0;font-size:15px;line-height:1.45}

@media (max-width:520px){
  #ph.xcal .mnu{top:calc(94px + env(safe-area-inset-top,0px))}
  #ph.xcal:not(.has-tabs)>.fab.float{bottom:calc(24px + env(safe-area-inset-bottom,0px))}
  #ph.xcal .chatb{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}
}
@media (prefers-reduced-motion:reduce){#ph.xcal .skel{animation:none}#ph.xcal .swp .c{transition:none}}

/* switches: same look as the kit, a 44 px hit area around them */
#ph.xcal .tog{width:52px;height:32px;position:relative}
#ph.xcal .tog::after{top:4px;left:4px;width:24px;height:24px}
#ph.xcal .tog.on::after{transform:translateX(20px)}
#ph.xcal button.tog::before{content:"";position:absolute;inset:-6px -4px}
