html{overflow-x:hidden}body{max-width:100%;overflow-x:clip}body.mobile-menu-open{overflow:hidden;touch-action:none}*,*::before,*::after{min-width:0}pre,code{max-width:100%;overflow-wrap:anywhere}pre{overflow-x:auto}iframe,video,canvas,svg,img{max-width:100%}table{max-width:100%}.container{width:min(100% - 2rem,1180px)}.mobile-menu-toggle,.mobile-menu{display:none}

@media(max-width:1240px){
  .nav-actions>.notification-link,.nav-actions>.create-button,.nav-actions>.profile-pill,.nav-actions>.link-button,.nav-actions>form.inline,.nav-actions>a.btn{display:none!important}
  .navbar-inner{grid-template-columns:auto minmax(160px,1fr) auto auto!important;gap:.6rem!important}.mobile-menu-toggle{position:relative;display:grid;width:2.55rem;height:2.55rem;place-content:center;gap:4px;padding:0;border:1px solid var(--border);border-radius:14px;color:var(--text);background:var(--surface-strong);box-shadow:var(--shadow-sm);cursor:pointer}.mobile-menu-toggle span{display:block;width:18px;height:2px;border-radius:4px;background:currentColor;transition:transform .38s cubic-bezier(.2,.85,.25,1),opacity .2s,width .25s}.mobile-menu-toggle span:nth-child(2){width:13px;margin-left:auto}.mobile-menu-toggle.is-open span:nth-child(1){transform:translateY(6px) rotate(45deg)}.mobile-menu-toggle.is-open span:nth-child(2){width:0;opacity:0}.mobile-menu-toggle.is-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .mobile-menu[hidden]{display:none}.mobile-menu{position:fixed;z-index:180;inset:0;display:block}.mobile-menu-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(5,8,22,.58);opacity:0;backdrop-filter:blur(0);transition:opacity .32s ease,backdrop-filter .32s ease}.mobile-menu-sheet{position:absolute;top:0;right:0;width:min(90vw,390px);height:100dvh;display:flex;flex-direction:column;overflow:hidden;padding:1rem;border-left:1px solid var(--border);border-radius:28px 0 0 28px;color:var(--text);background:color-mix(in srgb,var(--surface-strong) 96%,transparent);box-shadow:-28px 0 70px rgba(5,8,22,.28);transform:translateX(104%) scale(.98);transform-origin:right center;transition:transform .42s cubic-bezier(.2,.86,.24,1);backdrop-filter:blur(24px)}.mobile-menu.is-open .mobile-menu-backdrop{opacity:1;backdrop-filter:blur(8px)}.mobile-menu.is-open .mobile-menu-sheet{transform:translateX(0) scale(1)}
  .mobile-menu-head{display:flex;align-items:center;justify-content:space-between;padding:.25rem .2rem 1rem}.mobile-menu-head>div{display:grid}.mobile-menu-head small{color:var(--primary);font-size:.68rem;font-weight:900;letter-spacing:.13em}.mobile-menu-head strong{font-size:1.25rem}.mobile-menu-head>button{width:2.7rem;height:2.7rem;border:0;border-radius:50%;color:var(--text);background:var(--surface-muted);font-size:1.65rem;line-height:1;transition:transform .3s ease,background .2s}.mobile-menu-head>button:hover{background:color-mix(in srgb,var(--primary) 15%,var(--surface));transform:rotate(90deg)}
  .mobile-menu-profile{display:grid;grid-template-columns:3rem minmax(0,1fr) auto;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.75rem;border:1px solid color-mix(in srgb,var(--primary) 24%,var(--border));border-radius:19px;color:var(--text);background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 10%,var(--surface)),color-mix(in srgb,var(--primary-2) 8%,var(--surface)))}.mobile-menu-profile>span{display:grid;width:3rem;height:3rem;place-items:center;border-radius:15px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));font-weight:900}.mobile-menu-profile div{display:grid}.mobile-menu-profile small{color:var(--text-muted)}.mobile-menu-profile>b{font-size:1.6rem;color:var(--primary)}
  .mobile-menu-links{flex:1;display:grid;align-content:start;gap:.28rem;overflow-y:auto;padding:.2rem .1rem}.mobile-menu-links>a{display:grid;grid-template-columns:2.6rem minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:.65rem;border-radius:16px;color:var(--text);opacity:0;transform:translateX(30px);transition:background .2s ease,transform .38s cubic-bezier(.2,.85,.25,1),opacity .3s ease}.mobile-menu.is-open .mobile-menu-links>a{opacity:1;transform:none}.mobile-menu.is-open .mobile-menu-links>a:nth-child(2){transition-delay:.035s}.mobile-menu.is-open .mobile-menu-links>a:nth-child(3){transition-delay:.07s}.mobile-menu.is-open .mobile-menu-links>a:nth-child(4){transition-delay:.105s}.mobile-menu.is-open .mobile-menu-links>a:nth-child(5){transition-delay:.14s}.mobile-menu.is-open .mobile-menu-links>a:nth-child(6){transition-delay:.175s}.mobile-menu-links>a:hover,.mobile-menu-links>a:focus-visible{background:color-mix(in srgb,var(--primary) 11%,var(--surface-muted));transform:translateX(4px)}.mobile-menu-links>a>span{display:grid;width:2.6rem;height:2.6rem;place-items:center;border-radius:13px;color:var(--primary);background:color-mix(in srgb,var(--primary) 11%,var(--surface));font-size:1.15rem;font-weight:900}.mobile-menu-links div{display:grid}.mobile-menu-links small{color:var(--text-muted);font-size:.75rem}.mobile-menu-links em{min-width:1.45rem;padding:.18rem .38rem;border-radius:99px;color:#fff;background:#ef4444;text-align:center;font-size:.7rem;font-style:normal}.mobile-menu-logout{padding-top:.75rem;border-top:1px solid var(--border)}.mobile-menu-logout button{display:flex;width:100%;align-items:center;justify-content:space-between;padding:.8rem 1rem;border:0;border-radius:15px;color:#ef476f;background:color-mix(in srgb,#ef476f 9%,var(--surface));font-weight:800}
  .hero-grid{grid-template-columns:1fr!important}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))!important}.stats-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}.profile-library-panel,.member-search-grid{grid-template-columns:1fr!important}.footer-inner{flex-wrap:wrap}.admin-grid{grid-template-columns:1fr!important}
}

@media(max-width:720px){
  html.mobile-overlay-locked,body.mobile-overlay-locked{overflow:hidden!important;overscroll-behavior:none!important}
  .chat-private-composer{align-items:center}.chat-private-composer textarea{height:40px!important;min-height:40px!important;max-height:96px;padding:9px 10px!important}
  #report-dialog{padding:.5rem!important}#report-dialog .report-modal{width:calc(100% - 1rem);max-height:calc(100dvh - 1rem);margin:.5rem;padding:1.25rem!important;border-radius:22px!important;overflow-y:auto!important}#report-dialog .report-modal h2{padding-right:2.5rem}#report-dialog .report-modal form,#report-dialog .report-modal label{width:100%}#report-dialog .report-modal textarea{width:100%;box-sizing:border-box}#report-dialog .modal-actions{gap:.65rem;margin-top:1rem}
  .navbar .navbar-inner{grid-template-columns:minmax(0,1fr) repeat(4,auto)!important}
  :root{--mobile-gutter:.85rem}.container{width:calc(100% - (var(--mobile-gutter) * 2))}.section{padding-top:1.25rem;padding-bottom:1.25rem}.navbar{padding:.55rem 0}.navbar-inner{grid-template-columns:minmax(0,1fr) auto auto auto!important;gap:.42rem!important}.brand span:last-child{font-size:.95rem}.brand-mark{width:2.3rem!important;height:2.3rem!important}.navbar-search{order:5!important;grid-column:1/-1!important;width:100%;height:2.85rem!important}.nav-actions{display:contents!important}.nav-actions>.language-picker{grid-column:2}.nav-actions>.theme-switch{grid-column:3}.nav-actions>.chat-nav-button{grid-column:4}.nav-actions>a,.nav-actions>form,.nav-actions>.notification-link{display:none!important}.mobile-menu-toggle{grid-column:5;grid-row:1}.language-trigger{min-height:2.4rem;padding:.4rem .58rem}.language-menu{position:fixed;top:4rem;right:.8rem}.theme-switch,.chat-nav-button,.mobile-menu-toggle{width:2.45rem!important;height:2.45rem!important;flex-basis:2.45rem!important}.mobile-menu-sheet{width:min(94vw,390px);padding:.8rem;border-radius:24px 0 0 24px}
  .hero-surface,.card,.profile-hero,.profile-library,.topic-surface,.reply-composer,.community-card{border-radius:20px!important}.hero-surface,.topic-surface{padding:1rem!important}.section-title,.reply-list-toolbar,.profile-library-head,.profile-actions{align-items:stretch!important;flex-direction:column!important}.section-title h1{font-size:clamp(1.65rem,8vw,2.25rem)}.hero h1{font-size:clamp(2.2rem,12vw,3.6rem)}.grid-3,.card-grid,.stats-row{grid-template-columns:1fr!important}.quick-actions,.topic-actions,.profile-actions,.form-actions{flex-wrap:wrap}.btn{max-width:100%;white-space:normal}.topic-heading-row{align-items:flex-start;gap:.75rem}.topic-author-avatar{flex-basis:3.2rem;width:3.2rem;height:3.2rem;border-radius:16px}.topic-heading-copy h1{font-size:clamp(1.55rem,8vw,2.15rem)}.topic-meta{font-size:.8rem}.topic-meta>span+span::before{display:none}.topic-content-panel{overflow-wrap:anywhere}.reply-filter-group,.profile-library-tabs{width:100%;overflow-x:auto;scrollbar-width:none}.reply-filter-group::-webkit-scrollbar,.profile-library-tabs::-webkit-scrollbar{display:none}.reply-filter,.profile-library-tabs button{flex:1 0 auto}.member-search-card{grid-template-columns:3.1rem minmax(0,1fr)}.member-search-stats{display:none}.achievement-panel-head{align-items:stretch;flex-direction:column}.achievement-card{min-width:0;flex:1 1 140px}.xp-progress>div{flex-wrap:wrap}.profile-follower-row{align-items:flex-start}.profile-follower-row .btn{font-size:.72rem}.search-page .search-input{font-size:16px}.chat-panel{max-width:100vw!important}.chat-panel-header{padding:14px}.chat-tabs{overflow-x:auto}.chat-message{max-width:100%;overflow:hidden}.chat-message>div{overflow-wrap:anywhere}.chat-image-lightbox{padding:58px 8px 8px}.toast-stack{top:auto;right:.75rem;bottom:.75rem;width:calc(100vw - 1.5rem)}
  .footer-inner{display:grid!important;gap:1rem}.footer-links{display:flex;flex-wrap:wrap;gap:.75rem}form input,form textarea,form select{max-width:100%;font-size:16px}table{display:block;width:100%;overflow-x:auto;white-space:nowrap}.route-skeleton-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.route-skeleton-detail,.route-skeleton-profile{border-radius:20px}
}

@media(max-width:420px){.container{width:calc(100% - 1rem)}.navbar-inner{gap:.3rem!important}.brand span:last-child{display:none}.brand-mark{width:2.35rem!important;height:2.35rem!important}.language-trigger{padding:.35rem .5rem}.mobile-menu-sheet{width:100%;border-left:0;border-radius:0}.topic-author-avatar{flex-basis:2.85rem;width:2.85rem;height:2.85rem}.topic-heading-copy h1{font-size:1.55rem}.profile-followers-dialog{height:88dvh}.account-type-options{grid-template-columns:1fr!important}}

@media(prefers-reduced-motion:reduce){.mobile-menu *{transition-duration:.01ms!important;animation-duration:.01ms!important}.mobile-menu-toggle span{transition-duration:.01ms!important}}

/* responsive integrity layer */
.navbar-inner{display:grid!important;grid-template-columns:max-content max-content minmax(11rem,1fr) max-content!important;align-items:center!important;gap:clamp(.45rem,1vw,1rem)!important}.brand,.nav-links,.nav-actions{min-width:0}.brand{max-width:13rem}.brand>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-links{display:flex;flex-wrap:nowrap!important;white-space:nowrap}.nav-links a{flex:0 0 auto}.navbar-search{width:100%;min-width:0;max-width:none}.nav-actions{display:flex;flex-wrap:nowrap!important;white-space:nowrap}.profile-pill{max-width:7.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-link{max-width:8.5rem;overflow:hidden;text-overflow:ellipsis}.mobile-menu-profile div,.mobile-menu-links div{min-width:0}.mobile-menu-profile strong,.mobile-menu-profile small,.mobile-menu-links strong,.mobile-menu-links small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
main,.section,.hero-surface,.card,.topic-card,.topic-card-main,.profile-hero,.profile-library,.forum-feed,.forum-sidebar,.contact-details-card{max-width:100%;min-width:0}main :where(h1,h2,h3,p,strong,small){overflow-wrap:anywhere}fieldset{min-width:0}form,.form-row,.quick-actions,.section-title{max-width:100%;min-width:0}.admin-maintenance-access>div{min-width:0;flex-wrap:wrap}
@media(max-width:1240px){.navbar-inner{grid-template-columns:max-content minmax(10rem,1fr) max-content max-content!important}.nav-links{display:none!important}.nav-actions>.notification-link,.nav-actions>.create-button,.nav-actions>.profile-pill,.nav-actions>.profile-create-pill,.nav-actions>.link-button,.nav-actions>form.inline,.nav-actions>a.btn{display:none!important}.mobile-menu-toggle{display:grid}.navbar-search{min-width:10rem}}
@media(max-width:900px){.notifications-hero,.forum-toolbar{align-items:stretch;flex-direction:column}.notifications-hero-actions{justify-content:flex-start}.footer-inner,.footer-links{min-width:0}.footer-column,.footer-brand{max-width:100%}.topic-card{min-width:0}}
@media(max-width:720px){.navbar .navbar-inner{grid-template-columns:minmax(0,1fr) repeat(4,max-content)!important;grid-template-rows:auto auto}.brand{grid-column:1;max-width:100%}.nav-links{display:none!important}.navbar-search{order:5!important;grid-column:1/-1!important;grid-row:2;width:100%;min-width:0}.mobile-menu-toggle{grid-column:5;grid-row:1}.nav-actions{display:contents!important}.nav-actions>.language-picker{grid-column:2;grid-row:1}.nav-actions>.theme-switch{grid-column:3;grid-row:1}.nav-actions>.chat-nav-button{grid-column:4;grid-row:1}.forum-toolbar{gap:.55rem}.topic-card{align-items:flex-start}.topic-metrics{flex-basis:3.5rem}.notifications-list .notification{grid-template-columns:auto minmax(0,1fr)}.notification-open{grid-column:2}.contact-detail-links{min-width:0}.contact-detail-links a,.contact-detail-links span{word-break:break-word}}
@media(max-width:480px){.navbar .navbar-inner{grid-template-columns:minmax(0,1fr) repeat(4,2.35rem)!important}.language-trigger,.theme-switch,.chat-nav-button,.mobile-menu-toggle{width:2.35rem!important;min-width:2.35rem!important;height:2.35rem!important}.language-trigger{justify-content:center;padding:0!important}.language-trigger>span:last-child{display:none}.topic-card{display:grid;grid-template-columns:minmax(0,1fr) auto}.topic-metrics{min-width:3rem}.notifications-list .notification{padding:.85rem}.notification-icon{width:2.6rem;height:2.6rem}.mobile-menu-sheet{max-width:100vw}.profile-setup-screen{padding:.75rem}}

/* Language menu lives under body so navbar grids, form max-width and backdrop filters cannot clip it. */
body>.language-menu {
  position: fixed;
  inset: auto;
  z-index: 260;
  display: grid;
  box-sizing: border-box;
  width: min(12rem, calc(100vw - 1rem));
  min-width: 0;
  max-width: none !important;
  gap: .35rem;
  overflow: hidden;
  padding: .45rem;
  border: 1px solid color-mix(in srgb,var(--primary) 16%,var(--border));
  border-radius: 18px;
  color: var(--text);
  background: var(--surface-strong);
  box-shadow: 0 18px 48px rgba(8,12,30,.2), 0 2px 10px rgba(8,12,30,.08);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-7px) scale(.975);
  transform-origin: top right;
  backdrop-filter: none;
  transition: opacity 160ms ease, transform 180ms cubic-bezier(.2,.8,.2,1), visibility 0s linear 180ms;
}

body>.language-menu.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) scale(1);
  transition-delay: 0s;
}

body>.language-menu button {
  display: grid;
  box-sizing: border-box;
  grid-template-columns: 2.35rem minmax(0,1fr) 1rem;
  align-items: center;
  gap: .65rem;
  width: 100%;
  min-height: 3rem;
  min-width: 0;
  margin: 0;
  padding: .45rem .55rem;
  border: 1px solid transparent;
  border-radius: 13px;
  color: var(--text);
  background: transparent;
  text-align: left;
  white-space: normal;
  cursor: pointer;
}

body>.language-menu button:hover,
body>.language-menu button:focus-visible,
body>.language-menu button.is-active {
  border-color: color-mix(in srgb,var(--primary) 14%,transparent);
  background: color-mix(in srgb,var(--primary) 10%,var(--surface-strong));
  outline: none;
}

body>.language-menu .language-code {
  display: grid;
  width: 2.35rem;
  height: 2.1rem;
  place-items: center;
  border-radius: 10px;
  color: var(--primary);
  background: color-mix(in srgb,var(--primary) 12%,var(--surface-muted));
  font-size: .72rem;
  font-weight: 900;
}

body>.language-menu button>span:nth-child(2) {
  overflow: hidden;
  font-size: .88rem;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body>.language-menu button b {
  justify-self: end;
  color: var(--primary);
}

html[data-theme="dark"] body>.language-menu {
  border-color: rgba(139,124,255,.2);
  background: #0d1428;
  box-shadow: 0 22px 54px rgba(0,0,0,.52), inset 0 1px 0 rgba(255,255,255,.04);
}

@media(max-width:480px) {
  body>.language-menu {
    width: min(11.5rem, calc(100vw - 1rem));
    border-radius: 16px;
  }
}

@media(prefers-reduced-motion:reduce) {
  body>.language-menu { transition: none; }
}
