/* ZBIF global mobile / small-screen layer — load after page CSS */
html{overflow-x:clip}
body{overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%}
img,video,svg,canvas{max-width:100%;height:auto}
iframe{max-width:100%}
table{max-width:100%}
.table-wrap,.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-wrap .table,.table-scroll table{min-width:520px}

/* Prevent iOS zoom on focus */
@media (max-width:980px){
  input,select,textarea,button{font-size:16px}
  .container{width:min(100% - 1.5rem,var(--container))}
  :root{--gutter:12px;--section-y:clamp(2.5rem,8vw,4rem)}
}

/* ---------- Public chrome ---------- */
@media (max-width:1024px){
  .nav-main{gap:.5rem;padding:.65rem 0}
  .brand-logo{padding:4px 8px}
  .brand-logo img{height:34px;max-width:140px}
  .nav-actions{gap:.35rem}
  .nav-actions .btn-sm{padding:.45rem .75rem;min-height:40px;font-size:.82rem}
  .nav-actions > .btn-primary{display:none} /* Get started is in the drawer */
  .nav-search-btn{width:40px;height:40px}
  .mobile-drawer{
    padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1.25rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));
  }
  .mobile-drawer a{min-height:48px;display:flex;align-items:center;font-size:1.02rem}
}

@media (max-width:768px){
  .page-hero{padding:clamp(1.75rem,6vw,2.5rem) 0 1.35rem}
  .page-hero h1,.hiw-hero h1{font-size:clamp(1.55rem,7vw,2.1rem);line-height:1.15;word-break:break-word}
  .page-hero .lead,.hiw-hero .lead,.section-head .lead{font-size:1rem;max-width:none}
  .hero-home{padding:clamp(2rem,7vw,3rem) 0}
  .hero-copy h1{max-width:none;font-size:clamp(1.65rem,8vw,2.4rem)}
  .hero-actions{
    display:flex!important;flex-direction:column!important;align-items:stretch!important;
    gap:.65rem!important;width:100%;
  }
  .hero-actions .btn{width:100%!important;justify-content:center;min-height:48px}
  /* Keep brand copy first; panel is secondary on phones */
  .hero-home-grid{display:flex;flex-direction:column;gap:1.25rem}
  .hero-copy{order:0}
  .hero-panel{order:1;margin:0}
  .hero-panel-card{min-height:0;padding:1.15rem 1.1rem}
  .hero-panel-card strong{font-size:1.05rem;line-height:1.3}
  .hero-home .countdown{width:100%}
  .hero-home .countdown div{flex:1;min-width:0;min-height:3.4rem}
  .glance-grid,.process-grid{grid-template-columns:1fr 1fr;gap:.75rem}
  .glance-card{padding:1rem .85rem}
  .glance-card strong{font-size:clamp(1.45rem,6vw,1.9rem)}
  .process-card{padding:1rem}
  .forum-band{padding:1.25rem;border-radius:16px}
  .forum-band h2{font-size:clamp(1.25rem,5.5vw,1.7rem)}
  .forum-band-aside{width:100%}
  .forum-band .countdown-gold,.countdown{width:100%;justify-content:space-between}
  .forum-band .countdown-gold div,.countdown div{min-width:0;flex:1;min-height:3.6rem;padding:.55rem .25rem}
  .forum-band .countdown-gold strong,.countdown strong{font-size:clamp(1.1rem,4.5vw,1.45rem)}
  .cta-band{flex-direction:column;align-items:stretch;gap:1rem;padding:1.25rem}
  .cta-band .btn{width:100%;justify-content:center}
  .footer-grid{grid-template-columns:1fr;gap:1.5rem}
  .footer-news-form{flex-wrap:wrap;max-width:none}
  .footer-news-form input,.footer-news-form .btn{width:100%}
  .partners-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .partner-logo{max-height:48px;max-width:110px}
  .hiw-cta{flex-direction:column}
  .hiw-cta .btn{width:100%;justify-content:center}
  .hiw-flow span{font-size:.8rem;padding:.35rem .7rem;min-height:2.1rem}
  .hiw-flow i{display:none}
  .reading{max-width:none}
  .section-head{margin-bottom:1.25rem;max-width:none}
  .card{padding:1rem}
  .grid{gap:1rem}
}

@media (max-width:480px){
  .glance-grid,.process-grid,.partners-grid{grid-template-columns:1fr}
  .brand-logo img{height:30px;max-width:120px}
  .nav-main{gap:.4rem}
  .nav-search-btn{width:42px;height:42px}
}

/* Schedule / agenda / deal timetable (public) */
@media (max-width:900px){
  .sched-hero-inner{padding-top:.5rem}
  .sched-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
  .sched-tabs{max-width:none}
  .sched-tab{font-size:.88rem;padding:.7rem .65rem}
  .agenda-days{
    display:flex;gap:.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch;
    grid-template-columns:none;padding-bottom:.35rem;margin-bottom:.75rem;
  }
  .agenda-day{flex:0 0 auto;min-width:7.5rem;white-space:nowrap}
  .agenda-timeline{padding-left:3.4rem}
  .agenda-timeline::before{left:2.35rem}
  .agenda-time{left:-3.4rem;width:2.7rem;font-size:.78rem}
  .agenda-item::before{left:-1.15rem}
  .tt-head{flex-direction:column;align-items:stretch}
  .tt-legend{gap:.5rem;font-size:.75rem}
  .tt-filters{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:.25rem}
  .tt-filters a,.tt-filters button{flex:0 0 auto}
  .tt-slots{grid-template-columns:1fr}
}

@media (max-width:480px){
  .sched-stats{grid-template-columns:1fr 1fr}
  .sched-countdown-wrap{margin-top:1rem}
}

/* ---------- App shell ---------- */
@media (max-width:980px){
  /* Avoid FOUC: keep drawer closed until JS opens it */
  .dash-shell.is-nav-open:not(.is-nav-ready) .dash-side,
  .adm-shell.is-nav-open:not(.is-nav-ready) .adm-side{
    transform:translateX(-100%);
  }
  .dash-shell.is-nav-open:not(.is-nav-ready) .dash-nav-scrim,
  .adm-shell.is-nav-open:not(.is-nav-ready) .adm-nav-scrim{display:none}
  .dash-top,.adm-top{
    padding:.6rem .85rem;
    padding-left:max(.85rem,env(safe-area-inset-left));
    padding-right:max(.85rem,env(safe-area-inset-right));
  }
  .dash-top-title strong,.adm-top-title strong{
    font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42vw;
  }
  .dash-body,.adm-content{
    padding:.9rem .85rem 5.5rem;
    padding-left:max(.85rem,env(safe-area-inset-left));
    padding-right:max(.85rem,env(safe-area-inset-right));
  }
  .dash-side,.adm-side{
    padding-top:max(1rem,env(safe-area-inset-top));
    padding-bottom:max(1rem,env(safe-area-inset-bottom));
  }
  .page-toolbar{
    flex-direction:column;align-items:stretch;gap:.75rem;margin-bottom:1rem;
  }
  .page-toolbar .btn,.page-toolbar > a.btn{width:100%;justify-content:center}
  .page-title{font-size:clamp(1.2rem,5.5vw,1.45rem)}
  .page-lead{font-size:.9rem;max-width:none}
  .home-hero,.tt-head{
    flex-direction:column;align-items:stretch;gap:.75rem;
  }
  .home-actions{width:100%}
  .home-actions .btn{flex:1;justify-content:center}
  .chal-card-top,.sol-card-top,.agenda-card-top,.match-row,.notif-item{
    flex-direction:column;align-items:flex-start;
  }
  .chal-actions,.match-side,.notif-item-actions,.zbif-modal-actions{
    width:100%;
  }
  .chal-actions .btn,.match-side .btn,.notif-item-actions .btn,.zbif-modal-actions .btn{
    flex:1;justify-content:center;min-height:44px;
  }
  .match-open-grid{grid-template-columns:1fr}
  .dash-stat-row{grid-template-columns:1fr 1fr;gap:.55rem}
  .dash-card{padding:1rem}
  .form-group{margin-bottom:.85rem}
  .grid.grid-2,.grid-2{grid-template-columns:1fr!important}
  .zbif-modal{padding:.75rem;align-items:end}
  .zbif-modal-panel,.zbif-modal-wide{
    width:100%;max-height:min(92vh,900px);border-radius:16px 16px 12px 12px;
    padding:1.15rem 1rem 1.1rem;
  }
  .nova-fab{right:max(.85rem,env(safe-area-inset-right));bottom:max(.85rem,env(safe-area-inset-bottom))}
  .nova-dock{
    width:100vw;max-width:100vw;right:0;bottom:0;border-radius:16px 16px 0 0;
    height:min(78vh,640px);
  }
}

@media (max-width:560px){
  .dash-stat-row{grid-template-columns:1fr}
  .dash-top-actions .dash-icon-btn[title="Open public site"],
  .dash-top-actions a[aria-label="Open public site"]{display:none}
  .tt-room{padding:.85rem}
  .agenda-meta{flex-direction:column;gap:.35rem}
  .sol-excerpt,.chal-excerpt{font-size:.9rem}
}

/* App deal board horizontal scroll on tablet phones */
@media (max-width:960px){
  .deal-board{
    display:flex;gap:.75rem;overflow-x:auto;-webkit-overflow-scrolling:touch;
    grid-template-columns:none;padding-bottom:.5rem;
  }
  .deal-col{flex:0 0 min(78vw,240px);min-width:200px}
}

/* ---------- Auth / register ---------- */
@media (max-width:900px){
  .auth-form{padding:1.25rem 1rem 2rem}
  .login-pane-form{padding:1.25rem 1rem}
  .login-form-wrap{max-width:none}
  .reg-layout{padding:1.25rem 1rem 2.5rem}
  .reg-steps{overflow-x:auto;-webkit-overflow-scrolling:touch;justify-content:flex-start;padding-bottom:.35rem}
  .reg-step{flex:0 0 auto}
}

@media (max-width:560px){
  body.is-login main{padding:.5rem;padding-bottom:max(.75rem,env(safe-area-inset-bottom))}
  .login-card{border-radius:14px;box-shadow:var(--shadow-md)}
  .login-pane-brand{padding:1rem}
  .btn,.btn-lg{width:100%;justify-content:center}
  .login-foot,.login-copy{font-size:.85rem}
  .otp-inputs{gap:.4rem}
  .otp-inputs input{width:2.6rem;height:2.85rem;font-size:1.15rem}
}

/* ---------- Admin ---------- */
@media (max-width:980px){
  .adm-top-actions{gap:.3rem}
  .adm-top-actions .btn{display:none}
  .adm-content .stat-grid{grid-template-columns:1fr 1fr}
  .adm-card,.dash-card{padding:1rem}
  .table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .adm-page-head{flex-direction:column;align-items:stretch;gap:.75rem}
  .adm-actions{display:flex;flex-wrap:wrap;gap:.5rem}
  .adm-actions .btn{flex:1;justify-content:center}
  .adm-event select{max-width:100%}
}
@media (max-width:560px){
  .adm-content .stat-grid{grid-template-columns:1fr}
  .adm-page-head h1{font-size:1.25rem}
}

/* ---------- Shared utilities ---------- */
@media (max-width:768px){
  .btn-lg{padding:.85rem 1.15rem}
  .chip-row{gap:.4rem}
  .flash{font-size:.9rem}
  .toast-stack{width:min(100% - 1rem,400px);left:max(.5rem,env(safe-area-inset-left));right:max(.5rem,env(safe-area-inset-right));top:max(.75rem,env(safe-area-inset-top))}
}

/* Touch-friendly tap targets */
@media (hover:none) and (pointer:coarse){
  .dash-nav a,.adm-nav a,.mobile-drawer a,.chal-actions .btn,.tt-filters button,.agenda-day{
    min-height:44px;
  }
  .dash-icon-btn,.nav-search-btn{min-width:44px;min-height:44px}
}
