/*
 * Responsive Guard v1.0
 * Global viewport protection for the public site + admin control center.
 * Goal: prevent accidental horizontal page overflow without hiding data tables.
 */
:root{
  --rg-safe-top:env(safe-area-inset-top,0px);
  --rg-safe-right:env(safe-area-inset-right,0px);
  --rg-safe-bottom:env(safe-area-inset-bottom,0px);
  --rg-safe-left:env(safe-area-inset-left,0px);
  --rg-vw:100vw;
}
html,body{width:100%;max-width:100%;margin-inline:0;overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%}
@supports not (overflow:clip){html,body{overflow-x:hidden}}
:where(img,picture,video,canvas,svg,iframe,embed,object){max-inline-size:100%}
:where(img,video,canvas){height:auto}
:where(iframe,embed,object){width:100%}
:where(input,select,textarea,button){max-inline-size:100%;font-size:inherit}
:where(pre,code,kbd,samp){overflow-wrap:anywhere}
pre{max-inline-size:100%;overflow:auto;-webkit-overflow-scrolling:touch}
:where(h1,h2,h3,h4,h5,h6,p,li,dd,dt,blockquote,figcaption,td,th,label,small,strong,a){overflow-wrap:anywhere}
.rg-scroll-zone{display:block;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.rg-scroll-zone>table,.rg-scroll-zone>pre{max-width:none}
.rg-overflowing{max-inline-size:100%!important}

/* Keep layout children shrinkable. */
.public-site :where(main,header,footer,nav,section,article,aside,form,fieldset,figure,div),
.admin-ui :where(main,header,footer,nav,section,article,aside,form,fieldset,figure,div){min-width:0}

/* ---------- Public site ---------- */
.public-site{min-width:0}
.public-site :where(.nav,.hero-frame,.hero-copy,.flight-strip,.container,.poster-wrap,.final-image>.poster,.site-footer>.footer-inner,footer .inner){max-width:calc(100vw - (var(--gutter,20px) * 2))}
.public-site :where(.btn,.mini-cta,.footer-line-btn,.takeoff-line,.takeoff-phone,.review-deck-foot>a,.takeoff-foot>a){max-width:100%;white-space:normal;text-align:center}
.public-site .brand{min-width:0;max-width:100%}
.public-site .brand span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.public-site .navlinks{min-width:0}
.public-site .compare-wrap{max-width:100%;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.public-site :where(.prose,.guide-prose,.card,.topic-card,.entity-card,.safety-card,.flight-step-card,.review-card-pro,.boarding-pro,.takeoff-pro,.footer-network,.footer-flight-card){max-width:100%}
.public-site .footer-network-grid{grid-template-columns:repeat(auto-fit,minmax(175px,1fr))}
.public-site .mobile-contact{left:max(10px,var(--rg-safe-left));right:max(10px,var(--rg-safe-right));bottom:max(10px,var(--rg-safe-bottom));max-width:calc(100vw - max(20px,calc(var(--rg-safe-left) + var(--rg-safe-right))))}
.public-site .site-footer{padding-bottom:max(100px,calc(86px + var(--rg-safe-bottom)))}

/* Notebook / tablet landscape: collapse fixed side columns before they can squeeze. */
@media(max-width:1024px){
  .public-site :where(.hero-copy-grid,.article-shell,.pro-head-grid,.guide-content-grid,.boarding-pro-head,.boarding-pro-body,.takeoff-head,.takeoff-grid,.review-deck-head){grid-template-columns:1fr!important}
  .public-site :where(.toc,.guide-toc){position:relative!important;top:auto!important}
  .public-site .footer-top{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .public-site .footer-flight-card{grid-column:1/-1}
  .public-site .footer-network-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .public-site :where(.boarding-stamp,.takeoff-status,.review-deck-proof){max-width:100%}
}

@media(max-width:820px){
  .public-site :where(.trust-grid,.service-grid,.factor-grid,.safety-grid,.entity-grid,.safety-pro-grid,.topic-grid,.flightplan-grid,.steps,.brand-article-grid,.price-factors){grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .public-site :where(.boarding-route-pro,.takeoff-checklist,.review-grid-pro){grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .public-site :where(.footer-top,.review-deck-foot,.takeoff-foot,.boarding-pro-foot){grid-template-columns:1fr!important}
  .public-site .footer-network-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:640px){
  .public-site :where(.trust-grid,.service-grid,.factor-grid,.safety-grid,.entity-grid,.safety-pro-grid,.topic-grid,.flightplan-grid,.steps,.brand-article-grid,.price-factors,.boarding-route-pro,.takeoff-checklist,.review-grid-pro,.boarding-meta){grid-template-columns:1fr!important}
  .public-site :where(.hero-actions,.manifest-actions,.footer-contact-grid){grid-template-columns:1fr!important}
  .public-site .hero-actions{display:grid!important}
  .public-site .hero-actions>*{width:100%}
  .public-site .nav{gap:8px}
  .public-site .brand{flex:1 1 auto;white-space:normal}
  .public-site .brand span{font-size:.88rem;white-space:nowrap}
  .public-site .menu-toggle{flex:0 0 auto}
  .public-site :where(.review-disclosure,.flight-message,.footer-network-head){min-width:0}
  .public-site .review-disclosure{display:grid;grid-template-columns:1fr}
  .public-site .review-disclosure b{white-space:normal}
  .public-site :where(.takeoff-line,.takeoff-phone){grid-template-columns:auto minmax(0,1fr)!important}
  .public-site :where(.takeoff-line,.takeoff-phone)>*:last-child{grid-column:1/-1}
  .public-site .footer-network-head{grid-template-columns:1fr!important}
}

@media(max-width:420px){
  :root{--gutter:10px}
  .public-site .footer-network-grid{grid-template-columns:1fr}
  .public-site .pro-dashboard{grid-template-columns:1fr!important}
  .public-site .review-deck-proof{grid-template-columns:1fr!important}
  .public-site .mobile-contact{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;padding:6px;border-radius:16px}
  .public-site .mobile-contact a{font-size:.76rem;padding:9px 5px;overflow-wrap:anywhere}
  .public-site :where(.hero-copy,.prose,.guide-prose){padding-left:16px!important;padding-right:16px!important}
  .public-site :where(.hero-flightbar,.boarding-pro-head,.takeoff-head,.review-deck-head){padding-left:14px!important;padding-right:14px!important}
  .public-site .flight-code,.public-site .flight-live{white-space:normal}
  .public-site .flight-message strong,.public-site .flight-message span{white-space:normal!important}
}

@media(max-width:340px){
  .public-site .brand img{width:42px;height:42px}
  .public-site .brand span{font-size:.78rem}
  .public-site .mobile-contact a{font-size:.68rem}
}

/* ---------- Admin Control Center ---------- */
.admin-ui{min-width:0}
.admin-ui .admin-shell,.admin-ui .main,.admin-ui .content{max-width:100%;min-width:0}
.admin-ui .content{width:100%}
.admin-ui .topbar{max-width:100%;padding-left:max(15px,var(--rg-safe-left));padding-right:max(15px,var(--rg-safe-right))}
.admin-ui .topbar>div,.admin-ui .top-actions{min-width:0}
.admin-ui .topbar h1{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-ui :where(.card,.card-pad,.stat,.net-panel,.review-hero-main,.review-preview,.faq-hero-main,.schema-panel,.seo-hero,.help-box,.privacy-note,.backup-card){max-width:100%;min-width:0}
.admin-ui :where(.table-wrap,.rg-scroll-zone){width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.admin-ui :where(.data-table,.network-table){max-width:none}
.admin-ui :where(.field input,.field select,.field textarea,.searchbar input,.searchbar select){min-width:0;max-width:100%}
.admin-ui :where(.btn,.btn-link,.view-site,.logout){max-width:100%;white-space:normal;text-align:center}
.admin-ui :where(.page-head,.section-title,.toolbar,.button-row,.editor-actions,.check-row,.top-actions){min-width:0}
.admin-ui .sidebar{padding-left:max(16px,var(--rg-safe-left));padding-bottom:max(22px,var(--rg-safe-bottom))}

/* Collapse page-specific right rails on ordinary notebooks, not only phones. */
@media(max-width:1280px){
  .admin-ui :where(.net-hero,.review-hero,.faq-hero,.settings-grid,.manager-grid){grid-template-columns:1fr!important}
  .admin-ui .manager-side{position:static!important;top:auto!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .admin-ui .seo-tools{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:1080px){
  .admin-ui .admin-shell{grid-template-columns:1fr}
  .admin-ui .sidebar{display:none;position:fixed;z-index:90;left:0;top:0;width:min(300px,88vw);max-width:88vw;height:100dvh;box-shadow:24px 0 60px rgba(25,10,4,.28)}
  .admin-ui .sidebar.open{display:block}
  .admin-ui .mobile-menu{display:inline-flex}
  .admin-ui .content{padding:18px}
  .admin-ui :where(.stats,.readiness-grid){grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .admin-ui :where(.grid-2,.seo-hero){grid-template-columns:1fr!important}
  .admin-ui .audit-list{grid-template-columns:1fr!important}
}

@media(max-width:820px){
  .admin-ui .topbar{height:auto;min-height:64px;padding-top:10px;padding-bottom:10px;align-items:center}
  .admin-ui .top-actions{gap:6px;flex:0 0 auto}
  .admin-ui :where(.manager-side,.toggle-grid,.schema-status,.seo-tools,.switch-grid){grid-template-columns:1fr!important}
  .admin-ui :where(.editor-grid,.faq-grid,.searchbar){grid-template-columns:1fr 1fr!important}
  .admin-ui .editor-grid .wide,.admin-ui .faq-grid .wide{grid-column:1/-1!important}
  .admin-ui .editor-grid .half{grid-column:auto!important}
  .admin-ui .review-editor-head,.admin-ui .faq-editor-head{align-items:flex-start;flex-wrap:wrap}
  .admin-ui .review-editor-head>div,.admin-ui .faq-editor-head>div{max-width:100%}
  .admin-ui .faq-editor-head strong{max-width:100%!important;white-space:normal!important}
  .admin-ui .compact{grid-template-columns:1fr 1fr!important}
  .admin-ui .footer-preview-grid{grid-template-columns:1fr 1fr!important}
}

@media(max-width:640px){
  .admin-ui .content{padding:12px max(10px,var(--rg-safe-right)) max(18px,var(--rg-safe-bottom)) max(10px,var(--rg-safe-left))}
  .admin-ui .topbar h1{font-size:14px;max-width:46vw}
  .admin-ui .view-site{display:none}
  .admin-ui .logout{padding:8px 9px;font-size:11px}
  .admin-ui :where(.stats,.mini-grid,.readiness-grid,.compact,.footer-preview-grid,.editor-grid,.faq-grid,.searchbar){grid-template-columns:1fr!important}
  .admin-ui :where(.form-grid,.future-grid,.backup-grid){grid-template-columns:1fr!important}
  .admin-ui .field.full,.admin-ui .editor-grid .wide,.admin-ui .editor-grid .half,.admin-ui .faq-grid .wide{grid-column:auto!important}
  .admin-ui .card-pad{padding:15px}
  .admin-ui :where(.page-head,.section-title){align-items:flex-start;flex-direction:column}
  .admin-ui :where(.button-row,.editor-actions){display:grid;grid-template-columns:1fr;width:100%}
  .admin-ui :where(.button-row,.editor-actions) .btn{width:100%}
  .admin-ui .health-row{grid-template-columns:28px minmax(0,1fr)!important}
  .admin-ui .health-row>*:last-child{grid-column:2}
  .admin-ui .preview-row{grid-template-columns:36px minmax(0,1fr)!important}
  .admin-ui .preview-row>em{grid-column:2;justify-self:start;white-space:normal!important}
  .admin-ui .bar-row{grid-template-columns:minmax(72px,.8fr) minmax(100px,1.4fr) 38px!important}
}

@media(max-width:380px){
  .admin-ui .content{padding-left:8px;padding-right:8px}
  .admin-ui .topbar{padding-left:8px;padding-right:8px;gap:6px}
  .admin-ui .topbar h1{font-size:12px;max-width:43vw}
  .admin-ui .mobile-menu{padding:7px 8px}
  .admin-ui .logout{font-size:10px}
  .admin-ui .card,.admin-ui .card-pad{border-radius:15px}
}

/* Login page */
.admin-login{overflow-x:clip;padding-left:max(16px,var(--rg-safe-left))!important;padding-right:max(16px,var(--rg-safe-right))!important;padding-bottom:max(16px,var(--rg-safe-bottom))!important}
.admin-login .login{max-width:100%}
.admin-login .brand{min-width:0}
.admin-login .brand>div{min-width:0}
.admin-login .brand strong{overflow-wrap:anywhere}
@media(max-width:420px){.admin-login .login{padding:20px 16px!important;border-radius:20px!important}.admin-login .brand img{width:56px!important;height:56px!important}.admin-login h1{font-size:25px!important}}
[data-rg-debug-overflow]{outline:2px solid #e00000!important;outline-offset:-2px!important}
