/* Shared layout limits. Content stays scrollable at narrow widths and text zoom. */
:root{--anix-safe-bottom:env(safe-area-inset-bottom,0px);--anix-safe-top:env(safe-area-inset-top,0px)}
html{scroll-padding-top:5rem;scroll-padding-bottom:calc(5rem + var(--anix-safe-bottom));-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{min-width:0}
:where(main,section,article,aside,form,.stack,.row,.main-view,.main-column,.content,.content-area,.workspace>*){min-width:0}
:where(img,video,canvas){max-width:100%}
:where(h1,h2,h3,p,.btn,button,label,.bio,.handle){overflow-wrap:anywhere}
:where(input,textarea,select){max-width:100%;box-sizing:border-box}
:where(pre){max-width:100%;overflow:auto}
:where(dialog){box-sizing:border-box;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px - var(--anix-safe-top) - var(--anix-safe-bottom));overflow:auto;overscroll-behavior:contain}
:where(.modal-content,.anix-order-box,.anix-search-box,.aa-card){max-width:100%;max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
/* Flex siblings in the consent sentence previously forced a 354px form. */
.login-screen{box-sizing:border-box;width:100%;max-width:100%;min-width:0}
.login-screen .stack,.login-options,#login-email-form,#login-code-form{min-width:0;max-width:100%}
.login-screen .check-row{display:block;line-height:1.65;overflow-wrap:break-word}
.login-screen .check-row input{display:inline-block;vertical-align:middle;margin:0 8px 2px 0;min-width:18px;min-height:18px}
.login-screen .check-row>span,.login-screen .check-row>a{display:inline}
.login-options .btn{width:100%;min-width:0;white-space:normal;text-align:center}
.login-options .btn>svg{flex-shrink:0}
/* Native and SPA transitions share timing; they never hold up navigation. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:anix-route-out 120ms ease both}
::view-transition-new(root){animation:anix-route-in 180ms ease both}
@keyframes anix-route-out{to{opacity:0}}
@keyframes anix-route-in{from{opacity:0}to{opacity:1}}
:where(button,[role=button],a.btn,summary){transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}
@media(hover:hover) and (pointer:fine){:where(a.btn,button:not(:disabled),summary):hover{filter:brightness(1.08)}}
@media(pointer:coarse){
 :where(button,input:not([type=checkbox]):not([type=radio]),select,.btn,[role=button],summary){min-height:44px}
 :where(input:not([type=checkbox]):not([type=radio]),textarea,select,[contenteditable=true]){font-size:16px!important}
 :where(.icon-btn,.icon-button,.close-btn){min-width:44px;min-height:44px}
}
@media(max-width:1100px){
 .anix-ai .sidebar{position:fixed;inset:0 auto 0 0;width:min(280px,85vw);min-width:0;height:var(--anix-visual-height,100dvh);margin-left:0!important;box-shadow:16px 0 40px #0004}
 .anix-ai .sidebar.collapsed{transform:translateX(-105%);visibility:hidden;transition:transform .22s ease,visibility .22s}
 .anix-ai .main-view{width:100%;min-width:0}
 .anix-ai .anix-sidebar-backdrop{position:fixed;inset:0;z-index:99;background:#0006;border:0;border-radius:0;padding:0}
 .anix-ai .anix-sidebar-backdrop[hidden]{display:none}
 .anix-ai .greeting-text{font-size:clamp(22px,4vw,30px);line-height:1.3;white-space:normal;text-align:center}
}
.anix-ai,.anix-ai .app-container{height:var(--anix-visual-height,100dvh)}
.anix-ai .main-view,.anix-ai .chat-scroll-area{min-height:0}
.anix-ai .composer-wrapper{padding-bottom:max(12px,var(--anix-safe-bottom))}
.anix-ai .welcome-screen{max-width:100%;padding-inline:20px}
.anix-ai.is-embedded,.anix-ai.is-embedded .app-container,.anix-ai.is-embedded .main-view,.anix-ai.is-embedded .chat-scroll-area{background:#161616!important}
.anix-ai.is-embedded .composer-wrapper{background:linear-gradient(180deg,#16161600,#161616 35%)!important}
@media(max-width:700px){
 .login-screen{padding-inline:20px}
 .login-screen .cover-mini{font-size:clamp(26px,8vw,40px);line-height:1.2;padding-block:24px;min-height:0}
 .login-screen{padding-bottom:calc(84px + var(--anix-safe-bottom))}
 .doc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 :where(.profile-actions,.profile-meta,.twitter-profile-stats,.cookie-actions){flex-wrap:wrap}
 .anix-mobile-5bar{padding-bottom:var(--anix-safe-bottom);height:calc(56px + var(--anix-safe-bottom))!important}
 .anix-btn-pri,.anix-btn-sec{white-space:normal;min-width:0;max-width:100%;text-align:center}
 .anix-banner-actions,.anix-actions,.anix-buttons{flex-wrap:wrap}
 .anix-buttons>*{flex:1 1 160px}
 .anix-ai .top-bar{padding-inline:12px}
}
.nav-post-btn .anix-compose-icon{display:none}
@media(min-width:641px) and (max-width:1024px){.nav-post-btn>span{display:none}.nav-post-btn .anix-compose-icon{display:block;width:24px;height:24px}}
@media(max-width:359px){.doc-grid{grid-template-columns:minmax(0,1fr)}.doc-card{min-height:0}.metric-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-height:500px) and (orientation:landscape){
 :where(dialog,.modal-content,.aa-card){max-height:calc(100dvh - 16px);margin-block:8px}
 .anix-ai .welcome-screen{padding-block:12px;justify-content:center}
 .anix-ai .greeting-text{font-size:22px}
 .anix-ai .composer-wrapper{padding-block:6px}
}
@media(prefers-reduced-motion:reduce){
 ::view-transition-old(root),::view-transition-new(root){animation:none!important}
 :where(*,*::before,*::after){scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
