/* Upper Room pieces 7-17b, 7-17d, 7-17e, 7-17f and 7-17g: the Bell page. Every class starts with .ub.
   7-17d: tabs copy For You (.cell/.tab/.ink in base.css); every line uses polish.css's --hair-w and --hair-mix.
   7-17e: tab icons, For You's dove (.end in base.css) at the true end, header resets, dock clearance. */
.ub{position:fixed;top:0;left:0;right:0;bottom:0;z-index:23;margin:0;padding:0;border:0;background:#000;color:var(--tx,#e7e9ea);display:flex;flex-direction:column;overflow:hidden;transform:translate3d(100%,0,0);transition:transform .26s var(--ease,ease);box-shadow:-10px 0 30px rgba(0,0,0,.55);overscroll-behavior:contain;touch-action:pan-y}
.ub.on{transform:none}
.ub-hd{flex:none;position:relative;z-index:3;margin:0;padding:0;padding-top:var(--top,env(safe-area-inset-top));height:auto;min-height:0;border:0;background:rgba(0,0,0,.84);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4)}
.ub-set .ub-hd,.ub-tabs,.ub-r,.ub-sk{border-bottom:1px solid var(--line,#2f3336);border-bottom-width:var(--hair-w,.5px);border-bottom-color:color-mix(in srgb,var(--line,#2f3336) var(--hair-mix,62%),transparent)}
.ub-bar{height:53px;display:grid;grid-template-columns:56px minmax(0,1fr) 56px;align-items:center;padding:0 16px}
.ub-bar>:first-child{justify-self:start}
.ub-bar>:last-child{justify-self:end}
.ub-bar h2{margin:0;text-align:center;font-size:20px;line-height:24px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ub-me,.ub-ab,.ub-fb{padding:0;border:0;background:none;border-radius:50%;flex:none;cursor:pointer;color:inherit}
.ub-mea{width:34px;height:34px;border-radius:50%;object-fit:cover;display:block;font-size:15px}
.ub-ib{width:40px;height:40px;flex:none;border:0;border-radius:50%;background:none;color:inherit;display:grid;place-items:center;cursor:pointer;margin-right:-8px;transition:background .15s}
.ub-ib svg{width:21px;height:21px}
.ub-ib:active{background:rgba(231,233,234,.1)}
.ub-bk{margin:0 0 0 -8px}
.ub-tabs{position:relative;display:grid;grid-template-columns:1fr 1fr;margin:0;padding:0}
.ub-cell{height:53px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}
.ub-cell:hover{background:rgba(231,233,234,.04)}
.ub-tab{position:relative;border:0;background:none;font:inherit;font-weight:700;font-size:17px;color:var(--dim,#71767b);transition:color .25s;cursor:pointer}
.ub-tab[aria-selected="true"]{color:var(--tx,#e7e9ea)}
.ub-ti{position:absolute;right:100%;top:50%;width:18px;height:18px;margin:-9px 7px 0 0;color:var(--tx,#e7e9ea);opacity:0;transform:scale(.5);transition:opacity .18s linear,transform .26s var(--ease,ease);pointer-events:none}
.ub-tab[aria-selected="true"] .ub-ti{opacity:1;transform:none}
.ub-ti svg{display:block;width:18px;height:18px;overflow:visible;transform-origin:50% 12.5%}
.ub-cl{transform-box:fill-box;transform-origin:50% 0}
.ub-ink{position:absolute;bottom:-1px;left:0;height:4px;border-radius:4px;background:var(--tx,#e7e9ea);width:0}
.ub-ink.ready{transition:transform .42s var(--ease,ease),width .3s var(--ease,ease)}
.ub-sc{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;padding-bottom:var(--ub-clear,calc(env(safe-area-inset-bottom) + 140px))}
.ub-bar,.ub-tabs,.ub-pane,.ub-body{max-width:600px;margin-left:auto;margin-right:auto}
.ub-r{display:flex;gap:12px;padding:12px 16px;cursor:pointer;transition:background .15s}
.ub-r:active{background:rgba(231,233,234,.05)}
.ub-new{background:rgba(29,155,240,.07)}
.ub-ic{flex:none;width:40px;display:flex;justify-content:flex-end;padding-top:1px}
.ub-ic svg{width:30px;height:30px}
.ub-k-heart{color:#f91880}
.ub-k-repost{color:#00ba7c}
.ub-k-follow,.ub-k-reply,.ub-k-quote,.ub-k-mention,.ub-k-bell{color:#1d9bf0}
.ub-k-pray,.ub-k-amen{color:#d4ac5e}
.ub-m{flex:1;min-width:0}
.ub-avs{display:flex;gap:6px;margin-bottom:8px}
.ub-av{width:32px;height:32px;border-radius:50%;object-fit:cover;display:block;background:#16181a;font-size:14px}
.ub-fa{width:40px;height:40px;border-radius:50%;object-fit:cover;display:block;background:#16181a;font-size:17px}
.ub-ini{display:grid;place-items:center;color:#fff;font-weight:700;line-height:1}
.ub-t{margin:0;font-size:16px;line-height:21px;font-weight:700;color:#e7e9ea;overflow-wrap:anywhere}
.ub-t b{font-weight:700}
.ub-t time{color:#71767b;font-weight:400}
.ub-s{margin:6px 0 0;color:#71767b;font-size:16px;line-height:21px;font-weight:700;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.ub-h{display:flex;gap:4px;align-items:baseline;min-width:0;font-size:16px;line-height:21px}
.ub-h b{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:62%}
.ub-h span{color:#71767b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ub-rp{color:#71767b;font-size:16px;line-height:21px;font-weight:700}
.ub-rp em{font-style:normal;color:#1d9bf0}
.ub-b{margin:2px 0 0;font-size:16px;line-height:21px;font-weight:700;white-space:pre-wrap;overflow-wrap:anywhere}
.ub-empty{padding:32px;max-width:400px;margin:0 auto}
.ub-empty h3{margin:0 0 8px;font-size:31px;line-height:36px;font-weight:800;letter-spacing:-.01em}
.ub-empty p{margin:0;color:#71767b;font-size:16px;line-height:21px}
.ub-retry{margin-top:20px;height:36px;padding:0 18px;border:0;border-radius:18px;background:#eff3f4;color:#0f1419;font:inherit;font-size:16px;font-weight:700;cursor:pointer}
.ub-sk{display:flex;gap:12px;padding:14px 16px}
.ub-sk>i{flex:none;width:32px;height:32px;border-radius:50%;margin-left:8px}
.ub-sk div{flex:1}
.ub-sk div i{display:block;height:12px;border-radius:6px;margin:6px 0 10px;width:72%}
.ub-sk div i+i{width:44%}
.ub-sk i{background:linear-gradient(90deg,#16181a 0%,#202327 50%,#16181a 100%);background-size:200% 100%;animation:ub-shine 1.2s linear infinite}
@keyframes ub-shine{from{background-position:200% 0}to{background-position:-200% 0}}
.ub-more{height:1px}
.ub-more.on{height:64px}
.ub-more.on:after{content:"";display:block;width:26px;height:26px;margin:19px auto;border:3px solid rgba(29,155,240,.25);border-top-color:#1d9bf0;border-radius:50%;animation:ub-spin .8s linear infinite}
@keyframes ub-spin{to{transform:rotate(360deg)}}
.ub-end .end{padding-bottom:0}
.ub-sub{margin:0;padding:12px 16px;color:#71767b;font-size:16px;line-height:21px}
.ub-sh{margin:0;padding:12px 16px 4px;font-size:20px;line-height:24px;font-weight:800}
.ub-sw{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:12px 16px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background .15s}
.ub-sw:active{background:rgba(231,233,234,.05)}
.ub-sw span{flex:1;font-size:16px;line-height:21px}
.ub-sw small{display:block;color:#71767b;font-size:14px;line-height:17px;margin-top:2px}
.ub-sw i{flex:none;width:44px;height:24px;border-radius:12px;background:#3e4144;position:relative;transition:background .2s}
.ub-sw i:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4);transition:transform .2s var(--ease,ease)}
.ub-sw[aria-checked="true"] i{background:#1d9bf0}
.ub-sw[aria-checked="true"] i:after{transform:translateX(20px)}
.ub-sw:disabled{opacity:.5;cursor:default}
.ub-note{margin:0;padding:16px;color:#71767b;font-size:14px;line-height:17px}
@keyframes ub-ring{0%{transform:rotate(0)}12%{transform:rotate(18deg)}28%{transform:rotate(-14deg)}44%{transform:rotate(9deg)}60%{transform:rotate(-5deg)}76%{transform:rotate(2deg)}100%{transform:rotate(0)}}
@keyframes ub-clap{0%,100%{transform:none}16%{transform:translateX(-1.6px)}32%{transform:translateX(1.4px)}48%{transform:translateX(-1px)}64%{transform:translateX(.5px)}}
@keyframes ub-draw{to{stroke-dashoffset:0}}
@keyframes ub-pop{0%,66%{transform:scale(1)}82%{transform:scale(1.2)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:no-preference){.ub-ti.ub-ring svg{animation:ub-ring .75s cubic-bezier(.36,.07,.19,.97)}.ub-ti.ub-ring .ub-cl{animation:ub-clap .75s ease-out}.ub-ti.ub-draw path{stroke-dasharray:1.01;stroke-dashoffset:1.01;animation:ub-draw .5s cubic-bezier(.65,0,.35,1) .06s forwards}.ub-ti.ub-draw svg{transform-origin:50% 50%;animation:ub-pop .72s ease-out}}
@media (min-width:640px){.ub-pane,.ub-body{border-left:1px solid color-mix(in srgb,var(--line,#2f3336) var(--hair-mix,62%),transparent);border-right:1px solid color-mix(in srgb,var(--line,#2f3336) var(--hair-mix,62%),transparent);min-height:100%}}
@media (prefers-reduced-motion:reduce){.ub,.ub-ink.ready,.ub-sw i,.ub-sw i:after,.ub-ti{transition:none}.ub-sk i,.ub-more.on:after,.ub-ti svg,.ub-cl{animation:none}}
.ub-pzb{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:var(--hair-w,.5px) solid color-mix(in srgb,var(--line,#2f3336) var(--hair-mix,62%),transparent);color:var(--dim,#71767b);font-size:15px;line-height:20px}
.ub-pzb svg{flex:none;width:20px;height:20px}
.ub-pzb span{flex:1;min-width:0}
.ub-pzr{flex:none;border:0;background:none;padding:6px 0 6px 8px;color:#1d9bf0;font:inherit;font-weight:700;cursor:pointer}
.ub-op{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:12px 16px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background .15s}
.ub-op:active{background:rgba(231,233,234,.05)}
.ub-op span{flex:1;font-size:16px;line-height:21px}
.ub-op i{flex:none;width:20px;height:20px;box-sizing:border-box;border-radius:50%;border:2px solid #536471;position:relative;transition:border-color .15s,background .15s}
.ub-op[aria-checked="true"] i{border-color:#1d9bf0;background:#1d9bf0}
.ub-op[aria-checked="true"] i:after{content:"";position:absolute;top:50%;left:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:#fff}
.ub-op:disabled{opacity:.5;cursor:default}
.ub-pzn:empty{display:none}
.ub-sh+.ub-sub{padding-top:4px}
.ub-body>.ub-sh:not(:first-child){margin-top:8px;padding-top:16px;border-top:var(--hair-w,.5px) solid color-mix(in srgb,var(--line,#2f3336) var(--hair-mix,62%),transparent)}
/* 7-17g: faces overlap the way X stacks them; each ring is the row's own colour, so it cuts a clean crescent. */
.ub-r{--ub-ring:#000}
.ub-new{--ub-ring:#020b11}
.ub-r:active{--ub-ring:#0c0c0c}
.ub-new:active{--ub-ring:#0d161c}
.ub-avs{gap:0;flex-wrap:nowrap}
.ub-ab{box-shadow:0 0 0 2px var(--ub-ring,#000);transition:box-shadow .15s}
.ub-avs>.ub-ab+.ub-ab{margin-left:-4px}
@media (max-width:340px){.ub-avs>.ub-ab:nth-child(n+7){display:none}}
/* 7-17h: full cards. The post brings For You's own padding, line and bar; the reply bar is the thread page's. */
.ub .ub-r.ub-card{display:block;padding:0;border-bottom:0}
.ub .ub-r.ub-card>.post{margin:0}
.ub .ub-full .ub-rb{margin:6px 0 0 -8px}
/* 7-17h2: on a reply card the face sits at the top, beside the name, the way X lines faces up. */
.ub .ub-full>.ub-fb{align-self:flex-start}

/* 7-17l: faces on the notification rows, just a hair bigger (32px to 35px) */
.ub .ub-avs .ub-av{width:35px;height:35px}
