/* 光遇电竞 V2.2 · 全站响应式布局补丁
 * 适配 320px–1920px，避免整页横向溢出，保留 PC 端左侧导航。
 * 置于 style.css、business.css 之后加载，避免老版本响应式规则覆盖。
 */
:root{--page-gutter:clamp(12px,3vw,30px)}
html{width:100%;max-width:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{width:100%;min-width:0;max-width:100%;margin:0;overflow-x:clip}
body,button,input,textarea,select{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
:is(main,section,article,aside,header,nav,footer,form,fieldset,details,.panel,.container,.admin-workspace,.admin-shell,.admin-list,.forum-home,.home-section,.home-welcome,.home-bulletin,.stats-grid,.cards-2,.cards-3,.list-stack,.record,.review-body,.review-row,.verify-layout,.verify-status,.verify-help,.welcome-main,.feed-main,.card-topline,.section-heading,.section-title,.notice-bar,.admin-filter,.topbar-inner,.top-links,.brand,.form-grid,.form-2,.layout-split){min-width:0}
:is(.container,.panel,.admin-workspace,.admin-list,.form-expander,.forum-home,.record,.table-wrap,.review-row,.verify-layout,.install-panel){max-width:100%}
:is(h1,h2,h3,h4,p,small,strong,b,label,summary,.muted,.hint,.feed-desc,.record,.notice-bar,.identity-detail,.privacy-box,.page-heading,.page-breadcrumb,.qr-url,.side-item,.verify-alert,.footer){overflow-wrap:anywhere}
img,video,svg,canvas,iframe{max-width:100%}
img,video{height:auto}
pre,code{max-width:100%;overflow-wrap:anywhere;white-space:pre-wrap}
:is(.cards-2,.cards-3,.stats-grid,.admin-stats,.layout-split,.form-2,.service-grid,.home-gifts,.verify-layout){width:100%;min-width:0}
.cards-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cards-3,.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.layout-split{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}
.form-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.panel,.stat,.activity-card,.reward-card,.feature-card{min-width:0}
.stat strong,.reward-box strong{overflow-wrap:anywhere}
.card-topline,.section-heading,.section-title,.notice-panel{flex-wrap:wrap}
.card-topline>*{min-width:0}
.card-topline .status{flex-shrink:0}
.record>*{min-width:0}
.record .status{flex-shrink:0}
.review-body .muted,.record p,.record small,.admin-list p{overflow-wrap:anywhere}
.form-grid,.form-grid label,.narrow-form{min-width:0;max-width:100%}
.form-grid :is(input,textarea,select),.review-form input,.inline-form input,.search-form input,.identity-review-form textarea{max-width:100%;min-width:0;box-sizing:border-box}
input[type=file]{display:block;max-width:100%;min-width:0;width:100%;font-size:inherit}
input[type=checkbox],input[type=radio]{width:auto;flex-shrink:0;accent-color:#1677d2}
textarea{max-width:100%;min-height:85px;resize:vertical}
.btn{max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.4;text-align:center}
.form-expander summary{line-height:1.6;overflow-wrap:anywhere;white-space:normal}
.privacy-box,.guide-rules,.verify-alert,.callout{min-width:0}
.quick-links a,.export-links a{max-width:100%;overflow-wrap:anywhere}
/* 站点标识与顶部操作，解决小屏导航和标题相互挤压 */
.topbar-inner{width:100%;max-width:1220px;gap:12px;min-width:0}
.is-admin .topbar-inner{max-width:100%}
.header-main{min-width:0;flex:1 1 auto}
.brand{max-width:100%;min-width:0;white-space:normal}
.brand>span:last-child{min-width:0}
.brand strong,.brand small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.top-links{flex:0 0 auto;min-width:0;white-space:nowrap}
.top-links .header-user{max-width:7.5em}
/* 社区首页：所有单元都可以按真实可用宽度收缩 */
.forum-home{width:100%}
.welcome-main{gap:10px}
.welcome-main>div:first-child{min-width:0;flex:1}
.welcome-account{min-width:0}
.welcome-account>*{min-width:0}
.welcome-account strong{overflow-wrap:anywhere}
.home-bulletin{min-width:0}
.bulletin-copy{min-width:0}
.service-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.service-item{width:100%;min-width:0;max-width:100%}
.service-item strong,.service-item small{max-width:100%;overflow-wrap:anywhere;text-align:center}
.feed-row{width:100%;min-width:0;gap:clamp(7px,2vw,14px)}
.feed-icon{flex-shrink:0}
.feed-main{flex:1 1 0;min-width:0}
.feed-title{display:block;white-space:normal;overflow-wrap:anywhere;line-height:1.5}
.feed-tag{display:inline-block;vertical-align:middle;white-space:nowrap}
.feed-desc{min-width:0;max-width:100%;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}
.feed-reward{flex:0 0 auto;min-width:50px;max-width:24%}
.home-gifts{grid-template-columns:repeat(3,minmax(0,1fr))}
.home-gift{min-width:0}
.home-gift strong{min-width:0;overflow-wrap:anywhere}
/* 管理后台：抽屉菜单/工作区避免横向撑破 */
.admin-sidebar{max-width:90vw}
.admin-workspace{width:0;min-width:0;flex:1 1 auto}
.admin-workspace .container{width:100%;max-width:min(1230px,100%)}
.admin-side-title{position:relative}
.sidebar-close{display:none}
.admin-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.admin-list>.panel,.admin-list>details{width:100%}
.review-row{grid-template-columns:minmax(0,200px) minmax(0,1fr)}
.review-img,.review-img a{max-width:100%}
.review-img img{max-width:100%;max-height:100%;object-fit:contain}
.review-form,.inline-form{min-width:0;max-width:100%;flex-wrap:wrap}
.review-form input{flex:1 1 175px}
.inline-form input{flex:1 1 135px;width:0;min-width:0}
.member-row{align-items:flex-start}
.member-row>div,.member-row details{min-width:0}
.member-row details{flex:0 1 auto}
.member-row p{max-width:100%}
.admin-filter{max-width:100%;flex-wrap:wrap}
.review-actions{flex-wrap:wrap}
.identity-detail{grid-template-columns:repeat(3,minmax(0,1fr))}
/* 日志表格：大屏自然表格，小屏改标签化记录 */
.table-wrap{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
.table-wrap table{width:100%;border-collapse:collapse;table-layout:auto}
.table-wrap th,.table-wrap td{overflow-wrap:anywhere;word-break:break-word;white-space:normal}
/* 上传图片及签到码与容器等比缩放 */
.upload-preview{display:block;width:100%;max-width:100%;height:auto;max-height:55vh;object-fit:contain}
.qr-frame{width:min(100%,350px);height:auto;aspect-ratio:1/1;margin-inline:auto}
.qr-frame canvas{width:100%!important;height:100%!important;aspect-ratio:1;max-width:100%;display:block}
.qr-url{max-width:100%;word-break:break-all;overflow-wrap:anywhere}
/* 触控设备使用足够大的点击区域和焦点状态 */
:is(a,button,input,select,textarea):focus-visible{outline:2px solid #217bd0;outline-offset:2px}
@media(max-width:1080px){
  .admin-workspace .container{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
  .admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .admin-shell{display:block;min-width:0}
  .admin-workspace{width:100%;min-width:0}
  .admin-sidebar{width:min(82vw,288px);max-width:288px;flex-basis:auto;transform:translateX(-105%);padding-top:max(22px,env(safe-area-inset-top));height:100vh;height:100dvh}
  .sidebar-open .admin-sidebar{transform:translateX(0)}
  .sidebar-open{overflow:hidden}
  .sidebar-close{display:grid;place-items:center;position:absolute;right:0;top:0;width:40px;height:40px;border:0;border-radius:7px;background:#f1f6fc;color:#2379c5;font-size:24px;cursor:pointer}
  .admin-side-title{padding-right:42px}
  .verify-layout{grid-template-columns:minmax(0,1fr)}
  .review-row{grid-template-columns:minmax(0,150px) minmax(0,1fr)}
  .admin-mobile-bar{min-width:0}
}
@media(max-width:720px){
  .container{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
  .cards-3,.cards-2,.layout-split{grid-template-columns:minmax(0,1fr)}
  .stats-grid,.admin-stats,.is-admin .admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .review-row{display:block}
  .review-img{height:auto;min-height:180px;max-height:280px;aspect-ratio:16/9;margin-bottom:14px}
  .review-img a{display:block;width:100%;height:100%}
  .form-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-workspace .container{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
  .identity-detail{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  html{-webkit-text-size-adjust:100%}
  body{font-size:14px;line-height:1.6}
  .topbar,.is-admin .topbar{height:auto;min-height:56px}
  .topbar-inner{height:auto;min-height:56px;padding:9px var(--page-gutter);gap:8px}
  .brand{gap:8px}
  .brand-mark{flex:0 0 34px;width:34px;height:34px}
  .brand strong{font-size:15px}
  .brand small{font-size:9px}
  .top-links{gap:10px;font-size:12px}
  .is-admin .top-links>a:not(.top-message){display:none}
  .top-links .top-message{white-space:nowrap}
  .container{width:100%;padding:16px var(--page-gutter) calc(98px + env(safe-area-inset-bottom,0px))}
  .is-admin .admin-workspace .container{padding:17px var(--page-gutter) calc(36px + env(safe-area-inset-bottom,0px))}
  .page-heading h1,.is-admin .page-heading h1{font-size:clamp(19px,5.5vw,23px);line-height:1.35}
  .page-heading p{font-size:12px}
  .panel,.admin-list .panel{padding:clamp(13px,3.8vw,19px)}
  .auth-card{width:100%;max-width:470px;margin-inline:auto}
  .form-grid{gap:14px}
  .form-grid :is(input:not([type=checkbox]),select,textarea),.inline-form input,.review-form input,.search-form input,.identity-review-form textarea{font-size:16px!important;line-height:1.4;min-height:44px}
  input[type=file]{padding:9px 6px!important;line-height:1.5;overflow:hidden}
  .btn{min-height:44px;padding:10px 13px;line-height:1.4}
  .btn.small{min-height:40px}
  .checklabel{display:flex!important;align-items:center;gap:9px}
  .checklabel input{margin:0;flex:0 0 auto}
  .cards-2,.cards-3,.layout-split,.verify-layout{grid-template-columns:minmax(0,1fr)}
  .stat{padding:clamp(12px,3.3vw,16px)}
  .stat strong,.admin-stats .stat strong{font-size:clamp(20px,6vw,27px)}
  .stat small,.stat span{font-size:11px}
  .section-heading{align-items:flex-start;flex-direction:column;gap:5px}
  .record{gap:10px;padding:13px}
  .record strong{font-size:14px}
  .record .status{max-width:100%}
  .card-topline{gap:8px}
  .card-topline strong,.card-topline b{flex:1 1 155px}
  .card-topline .status{align-self:flex-start}
  .review-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:8px}
  .review-form input:not([type=hidden]){width:100%;grid-column:1/-1}
  .review-form button{min-width:0;max-width:100%;width:100%;grid-column:auto}
  .review-form button:only-of-type{grid-column:1/-1}
  .inline-form{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
  .inline-form input{width:100%;max-width:100%}
  .inline-form .btn{width:100%}
  .member-row{display:block}
  .member-row details{display:block;width:100%;margin-top:13px}
  .member-row details summary{padding:4px 0}
  .search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;max-width:100%}
  .search-form input{width:100%}
  .review-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .review-actions .btn{min-width:0;width:100%}
  .review-img{max-height:260px;min-height:160px;aspect-ratio:16/9}
  .mobile-nav{z-index:31;min-height:62px;left:0;right:0;bottom:0;padding:7px 4px calc(7px + env(safe-area-inset-bottom,0px));gap:0;box-sizing:border-box}
  .mobile-nav a{min-width:0;max-width:20%;padding:3px 1px;font-size:10px;line-height:1.35;white-space:nowrap}
  .mobile-nav .nav-glyph{font-size:21px;height:23px}
  .verify-alert{flex-wrap:wrap;gap:7px}
  .verify-alert>div:nth-child(2){flex:1 1 180px;min-width:0}
  .verify-alert a{margin-left:30px;white-space:normal}
  .verify-help{display:none}
  .identity-review-form textarea{max-width:100%}
  .admin-mobile-bar{padding:0 var(--page-gutter);height:50px;gap:12px}
  .admin-mobile-bar a{white-space:nowrap}
  .qr-panel,.is-admin .qr-panel{width:100%;max-width:100%}
  .qr-frame{width:min(100%,300px)}
  .qr-panel .btn{width:100%}
  .service-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:2px}
  .service-item{padding:8px 0}
  .service-item strong{font-size:11px}
  .service-item small{font-size:10px;line-height:1.35;white-space:normal;max-width:100%;padding:0 2px}
  .feed-row{align-items:flex-start}
  .feed-main{min-width:0}
  .feed-reward{flex-shrink:0;min-width:50px}
  .feed-reward b{font-size:16px}
  .home-gifts{grid-template-columns:repeat(3,minmax(0,1fr))}
  .home-gift{padding:12px 5px}
  .welcome-account>*{padding:11px 8px}
  .welcome-account strong{font-size:clamp(16px,5vw,20px)}
  .notice-panel{align-items:flex-start}
  .notice-panel .btn{width:100%}
  .table-wrap{overflow-x:visible;padding:0!important}
  .table-wrap table,.table-wrap tbody,.table-wrap tr,.table-wrap td{display:block;width:100%}
  .table-wrap thead{display:none}
  .table-wrap tr{border:1px solid #e7edf3;border-radius:8px;margin:0 0 10px;padding:7px 11px;background:#fff}
  .table-wrap td{display:grid;grid-template-columns:minmax(58px,80px) minmax(0,1fr);gap:9px;border:0;padding:7px 0;font-size:12px;white-space:normal;overflow-wrap:anywhere}
  .table-wrap td+td{border-top:1px solid #f1f4f7}
  .table-wrap td::before{content:attr(data-label);font-weight:700;color:#8191a2}
  .table-wrap td:not([data-label])::before{content:'记录'}
  .footer{overflow-wrap:anywhere;margin:23px 0 8px;font-size:11px}
}
@media(max-width:420px){
  .topbar-inner{padding-inline:12px}
  .top-links{gap:8px}
  .top-links a{font-size:12px}
  .welcome-main{align-items:center}
  .welcome-main h2{font-size:19px;line-height:1.3}
  .welcome-main p{max-width:100%;line-height:1.5}
  .welcome-badge{height:43px;width:43px}
  .welcome-badge span{font-size:20px}
  .home-gifts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .home-gift strong{font-size:12px}
  .feed-icon{width:35px;height:35px;flex-basis:35px}
  .feed-row{gap:8px}
  .feed-title{font-size:12px}
  .feed-desc{font-size:11px}
  .feed-reward{min-width:42px}
  .feed-reward b{font-size:15px}
  .feed-reward small{font-size:9px}
  .identity-detail{grid-template-columns:minmax(0,1fr)}
  .admin-stats .stat{padding:12px}
  .form-2{grid-template-columns:minmax(0,1fr)}
  .section-title h2{font-size:15px}
  .service-icon{width:40px;height:40px}
}
@media(max-width:350px){
  .topbar-inner{gap:5px}
  .brand{gap:6px}
  .brand-mark{width:30px;height:30px;flex-basis:30px;font-size:14px}
  .brand strong{font-size:13px}
  .brand small{font-size:8px}
  .top-links{gap:7px}
  .top-links a{font-size:11px}
  .is-member .top-links .top-message{font-size:12px}
  .panel,.admin-list .panel{padding:12px}
  .service-item small{display:none}
  .welcome-account strong{font-size:16px}
  .welcome-account span{font-size:9px}
  .stats-grid,.admin-stats,.is-admin .admin-stats{gap:8px}
  .review-actions{grid-template-columns:minmax(0,1fr)}
  .qr-frame{width:min(100%,266px)}
}
@media(orientation:landscape) and (max-height:480px){
  .mobile-nav{min-height:44px;padding-top:3px;padding-bottom:calc(3px + env(safe-area-inset-bottom,0px))}
  .mobile-nav .nav-glyph{font-size:17px;height:19px}
  .admin-sidebar{overflow-y:auto}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .admin-sidebar,.btn{transition:none!important}
}
