/* Update announcement card. Wide sidebar: bottom-left under the session list. Otherwise (phone, narrow window, collapsed sidebar, login page): a compact card centred at the top. */
.tt-announce{position:fixed;inset:auto;margin:0;padding:16px 16px 14px;overflow:visible;left:max(12px,env(safe-area-inset-left,0px));bottom:calc(56px + env(safe-area-inset-bottom,0px));top:auto;z-index:2147483000;box-sizing:border-box;width:280px;max-width:calc(100vw - 24px);display:flex;flex-direction:column;align-items:stretch;gap:9px;border-radius:16px;border:1px solid var(--color-line,rgba(128,128,128,.24));background:linear-gradient(var(--color-menu-bg,var(--color-surface-raised,#262626)),var(--color-menu-bg,var(--color-surface-raised,#262626))),var(--color-bg,#121212);color:var(--color-text,rgba(255,255,255,.88));box-shadow:0 14px 40px rgba(0,0,0,.30),0 2px 8px rgba(0,0,0,.16);font-size:13px;line-height:1.55;animation:tt-announce-in .22s cubic-bezier(.2,.8,.2,1)}
.tt-announce,.tt-announce *{box-sizing:border-box}
.tt-announce-important{border-color:var(--color-accent,#c8352e)}
.tt-announce-head{display:flex;align-items:center;gap:10px;min-width:0}
.tt-announce-icon{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--color-accent-soft,rgba(26,136,255,.14));color:var(--color-accent,#1a88ff)}
.tt-announce-important .tt-announce-icon{background:color-mix(in srgb,var(--color-accent,#c8352e) 14%,transparent);color:var(--color-accent,#c8352e)}
.tt-announce-title{font-weight:600;font-size:14.5px;line-height:1.35;color:var(--color-text-strong,var(--color-text,#fff))}
.tt-announce-body{margin:0;color:var(--color-text-muted,rgba(255,255,255,.6));font-size:13px;line-height:1.6;white-space:pre-line;word-break:break-word;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;line-clamp:6;overflow:hidden}
.tt-announce-actions{display:flex;align-items:center;justify-content:flex-start;gap:8px;margin-top:4px}
.tt-announce button{touch-action:manipulation;-webkit-tap-highlight-color:transparent;font:inherit;font-size:13px;line-height:1;cursor:pointer;min-height:32px;padding:0 16px;border-radius:999px;border:1px solid transparent;white-space:nowrap;transition:background-color .15s,color .15s,opacity .15s}
.tt-announce button.tt-announce-go{background:var(--color-accent,#1a88ff);color:var(--color-text-on-accent,#fff);font-weight:500}
.tt-announce button.tt-announce-go:hover{filter:brightness(1.08)}
.tt-announce button.tt-announce-go:disabled{opacity:.7;cursor:progress}
.tt-announce button.tt-announce-later{background:transparent;color:var(--color-text-muted,rgba(255,255,255,.6))}
.tt-announce button.tt-announce-later:hover{background:var(--color-hover,rgba(255,255,255,.06));color:var(--color-text,#fff)}
.tt-announce.tt-announce-notice button.tt-announce-later{border-color:var(--color-line-strong,rgba(128,128,128,.3));color:var(--color-text,#fff)}
.tt-announce button:focus-visible{outline:2px solid var(--color-accent,#1a88ff);outline-offset:2px}
@keyframes tt-announce-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes tt-announce-in-top{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.tt-announce{animation:none}.tt-announce button{transition:none}}
/* Top layout (fit() adds .tt-announce-top; the media query below is the no-JS safety net). */
.tt-announce-top,.tt-announce.tt-announce-top{left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));width:min(420px,calc(100vw - 24px));max-width:none;margin:0 auto;top:calc(env(safe-area-inset-top,0px) + 14px);bottom:auto;animation-name:tt-announce-in-top}
.tt-announce-top .tt-announce-body{-webkit-line-clamp:3;line-clamp:3}
@media (max-width:700px){.tt-announce{left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));width:auto;max-width:none;margin:0 auto;top:calc(env(safe-area-inset-top,0px) + 12px);bottom:auto;animation-name:tt-announce-in-top}}
@media (pointer:coarse){.tt-announce button{min-height:40px;padding:0 20px;font-size:14px}}
@media (max-height:500px){.tt-announce-top{padding:10px 14px;gap:6px}.tt-announce-top .tt-announce-body{-webkit-line-clamp:2;line-clamp:2}}
/* The login gate hides every other child of <body> with an !important rule that carries several ids; out-rank it so an update notice also reaches people who are not signed in. */
body.tt-product-auth-locked > .tt-announce:not(#a1):not(#a2):not(#a3):not(#a4):not(#a5){visibility:visible !important}
