.ts-post-tab{position:fixed;right:env(safe-area-inset-right,0px);top:50%;transform:translateY(-50%);z-index:40;writing-mode:vertical-rl;background:var(--accent);color:#fff;border:1px solid var(--border);border-right:0;border-radius:8px 0 0 8px;padding:.8em .55em;text-decoration:none;font-weight:bold;font-size:.875rem;line-height:1.4;white-space:nowrap;box-shadow:-3px 2px 14px #0003;min-width:44px;text-align:center}
.ts-post-tab:hover{color:#fff;text-decoration:none;filter:brightness(1.08)}
/* Reserve reading space beside the tab, including at large mobile font sizes. */
body:has(.ts-post-tab) .wrap{padding-right:calc(max(44px,2.6rem) + env(safe-area-inset-right,0px))}
body:has(.ts-post-tab) .not-found-main{padding-right:calc(max(44px,2.6rem) + env(safe-area-inset-right,0px))}
.ts-post-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(30rem,100vw);max-width:100vw;height:100vh;height:100dvh;max-height:none;padding:0;border:0;border-left:1px solid var(--border);border-radius:0;background:var(--panel);color:var(--text);box-shadow:-8px 0 32px #0004;overflow:hidden;box-sizing:border-box}
.ts-post-drawer[open]{display:flex;flex-direction:column;animation:ts-post-enter .18s ease-out}
.ts-post-drawer::backdrop{background:#0006}
.ts-post-heading{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:1rem max(1rem,env(safe-area-inset-right,0px)) 1rem 1rem;border-bottom:1px solid var(--border);flex:none}
.ts-post-heading h2{margin:0;min-width:0;font-size:1.25rem;overflow-wrap:anywhere}
.ts-post-heading button{flex:none;min-height:44px}
.ts-post-content{padding:1rem max(1rem,env(safe-area-inset-right,0px)) max(1rem,env(safe-area-inset-bottom,0px)) 1rem;overflow-y:auto;overscroll-behavior:contain;min-height:0;overflow-wrap:anywhere}
.ts-post-content>p:first-child{margin-top:0}
.ts-post-content textarea{width:100%;min-height:8rem;height:clamp(8rem,30vh,18rem)}
.ts-post-content button[type=submit]{min-height:44px}
.ts-post-content [data-post-status][hidden]{display:none}
.ts-post-content [data-post-status]{scroll-margin:1rem}
html.ts-post-open,html.ts-post-open body{overflow:hidden}
@keyframes ts-post-enter{from{transform:translateX(100%)}to{transform:translateX(0)}}
@media(max-width:400px){.ts-post-heading{flex-wrap:wrap}.ts-post-heading button{margin-left:auto}.ts-post-content button[type=submit]{width:100%}}
@media(prefers-reduced-motion:reduce){.ts-post-drawer[open]{animation:none}}
@media print{.ts-post-tab,.ts-post-drawer{display:none!important}body:has(.ts-post-tab) .wrap,body:has(.ts-post-tab) .not-found-main{padding-right:0}}
