/* Shared layout constraints; inner carousels retain their own scrolling. */
img,video,canvas{max-width:100%}
input,textarea,select{min-width:0}
main,header,footer,section,article,form,.main-wrap,#main{min-width:0}
pre{max-width:100%;overflow:auto;overflow-wrap:anywhere}
h1,h2,h3,.letter-bio,.letter-wish,.invitation-text,.chat-bubble{overflow-wrap:anywhere}
[hidden]{display:none!important}
@media(max-width:700px){
 body:not(:has(.main-wrap))>header{gap:12px}
 body:not(:has(.main-wrap))>header nav{min-width:0;gap:12px}
 .portal-page>header nav,.invite-page>header nav{margin-left:auto;justify-content:flex-end}
 .portal-page>header .brand,.invite-page>header .brand{flex-shrink:0}
 .top-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:8px}
 .top-actions .share-system-button{max-width:none;width:100%;min-width:0;min-height:44px;white-space:normal;line-height:1.4}
 .top-actions .language{grid-column:2;justify-self:end;margin-left:0}
 .sidebar nav .nav-item{width:auto;min-width:0;flex:1 1 0;padding-left:2px;padding-right:2px}
 .invitation-primary-actions{flex-wrap:wrap}
 .invitation-primary-actions>button{min-width:0;overflow-wrap:anywhere}
 .invitation-share-preview{gap:12px}
 .invitation-share-preview .invite-share-thumb{width:64px;height:80px}
 .invitation-letter{max-width:100%}
 .letter-qr{max-width:100%}
 #session-actions{gap:8px}
 .legal-top>a{flex-basis:100%}
 .legal-top{justify-content:flex-end}
 .legal-top select{max-width:calc(60% - 12px)}
 body:not(:has(.main-wrap))>main,body:not(:has(.main-wrap))>footer{padding-left:16px;padding-right:16px}
 table{display:block;max-width:100%;overflow-x:auto}
}
@media(max-width:380px){
 .modal{padding-left:16px;padding-right:16px}
 .letter-title,.letter-bio,.letter-wish{overflow-wrap:anywhere}
 .invitation-letter{padding-left:16px;padding-right:16px}
 .portal-page>header,.invite-page>header{padding-left:16px;padding-right:16px}
}

.sidebar .brand>span:nth-child(2){font-size:22px;letter-spacing:-.8px;min-width:0}.sidebar .brand-symbol{font-size:34px}.sidebar .brand{gap:8px;margin-left:0;margin-right:0}
