/* Rasoo.in V55 — mobile-first responsive safety layer */
*,*::before,*::after{box-sizing:border-box}
html{width:100%;max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{width:100%;max-width:100%;min-width:0;overflow-x:hidden;margin:0}
img,svg,video,canvas,iframe{display:block;max-width:100%;height:auto}
input,select,textarea,button{max-width:100%;font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
pre,code{white-space:pre-wrap;overflow-wrap:anywhere}
.long-text,.muted,p,span,small,strong,h1,h2,h3,h4,label,td,th{overflow-wrap:anywhere}

/* Common page shells */
.container,.section-wrap,.page-wrap,.admin-shell,.admin-main,.dashboard-shell,.portal-shell,.customer-shell,.rider-shell,.legal-shell,main{min-width:0;max-width:100%}
.section-wrap,.container,.page-wrap,.legal-shell{width:min(1180px,calc(100% - 32px));margin-inline:auto}
.grid,.menu-grid,.tiffin-plan-grid,.steps-grid,.stats-grid,.admin-grid,.settings-grid,.portal-main-grid,.subscription-grid,.orders-grid{min-width:0}
.card,.panel,.section-card,.menu-card,.tiffin-card,.stat-card,.modal-card,.auth-card{min-width:0;max-width:100%}

/* Header/navigation resilience */
header,.site-header,.topbar,.app-header,.admin-header,.rider-header{max-width:100%}
nav,.site-nav,.header-actions,.top-actions{min-width:0}
.site-header .section-wrap,.topbar .section-wrap,.app-header .section-wrap{display:flex;align-items:center;gap:12px}
.site-nav,.header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.site-nav a,.header-actions a,.header-actions button{white-space:nowrap}

/* Tables scroll instead of breaking the viewport */
table{width:100%;max-width:100%;border-collapse:collapse}
.table-wrap,.responsive-table,.admin-table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
table:not(.no-mobile-scroll){display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}
table thead,table tbody,table tr{width:max-content;min-width:100%}

/* Forms */
form{min-width:0;max-width:100%}
label{min-width:0}
input,select,textarea{width:100%;min-width:0}
textarea{resize:vertical}
.form-row,.form-grid,.field-grid,.two-column,.two-col,.three-col{min-width:0}
.button,.btn,button,[type=submit]{touch-action:manipulation}

/* Modal/cart safety */
.modal,.overlay{max-width:100vw}
.modal-card{width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;margin:auto}
.cart-panel{width:min(430px,100vw);max-width:100vw;height:100dvh;overflow:auto}

/* Homepage/menu */
.z-hero,.hero,.hero-slider{max-width:100%;overflow:hidden}
.z-hero-content,.hero-content{min-width:0}
.z-search-shell,.hero-search,.search-box{min-width:0;max-width:100%}
.z-hero-actions,.quick-info,.contact-actions{min-width:0}
.filter-row{max-width:100%;overflow-x:auto!important;display:flex!important;flex-wrap:nowrap!important;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-inline:contain}
.filter-row::-webkit-scrollbar{display:none}
.filter-row>*{flex:0 0 auto}
.menu-card img,.menu-image img,.menu-card-image img{max-width:100%}

/* Login/customer portals */
.portal-login-shell,.login-shell,.auth-layout{min-width:0;max-width:100%}
.portal-brand-card,.portal-login-card{min-width:0}
.portal-tiffin-layout,.portal-dashboard-hero{min-width:0}
.portal-dashboard-nav{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}

/* Admin/rider dashboards */
.admin-layout,.dashboard-layout,.rider-layout{min-width:0;max-width:100%}
.admin-sidebar,.sidebar{min-width:0}
.admin-content,.dashboard-content,.rider-content{min-width:0;max-width:100%}

@media (max-width: 980px){
  .section-wrap,.container,.page-wrap,.legal-shell{width:min(100% - 24px,1180px)}
  .portal-login-shell,.login-shell,.auth-layout,.portal-dashboard-hero,.portal-tiffin-layout,.admin-layout,.dashboard-layout,.rider-layout{grid-template-columns:1fr!important}
  .admin-sidebar,.sidebar{position:static!important;width:100%!important;max-width:none!important;height:auto!important}
  .admin-main,.admin-content,.dashboard-content,.rider-content{width:100%!important;margin:0!important}
  .menu-grid,.tiffin-plan-grid,.steps-grid,.stats-grid,.admin-grid,.settings-grid,.subscription-grid-v3{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .z-hero-actions,.quick-info{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .site-header .section-wrap,.topbar .section-wrap,.app-header .section-wrap{flex-wrap:wrap}
}

@media (max-width: 680px){
  body{font-size:15px}
  .section-wrap,.container,.page-wrap,.legal-shell{width:min(100% - 20px,1180px)}
  h1{font-size:clamp(1.9rem,9vw,3rem)!important;line-height:1.05!important}
  h2{font-size:clamp(1.45rem,7vw,2.2rem)!important;line-height:1.1!important}
  h3{font-size:clamp(1.1rem,5vw,1.5rem)!important}
  .site-header,.topbar,.app-header{padding-block:8px}
  .site-header .section-wrap,.topbar .section-wrap,.app-header .section-wrap{align-items:flex-start}
  .site-nav,.header-actions{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px;scrollbar-width:none}
  .site-nav::-webkit-scrollbar,.header-actions::-webkit-scrollbar{display:none}
  .logo img,.brand img{max-height:46px;width:auto}
  .z-hero,.hero{min-height:auto!important;border-radius:0!important}
  .z-hero-content,.hero-content{padding:28px 14px 24px!important}
  .z-search-shell,.hero-search{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;padding:8px!important;border-radius:14px!important}
  .z-search-shell input,.hero-search input{min-height:48px}
  .z-hero-actions,.quick-info,.menu-grid,.tiffin-plan-grid,.steps-grid,.stats-grid,.admin-grid,.settings-grid,.subscription-grid-v3,.two-column,.two-col,.three-col,.form-grid,.field-grid{grid-template-columns:1fr!important}
  .z-action-card,.quick-info>div{min-height:72px}
  .section-heading,.section-heading-v3,.contact-section,.cart-summary>div{align-items:flex-start;flex-direction:column!important}
  .section-heading .search-box{width:100%!important}
  .menu-card{display:grid!important;grid-template-columns:104px minmax(0,1fr)!important;min-height:126px!important}
  .menu-card-image,.menu-image{width:104px!important;height:104px!important;min-height:104px!important;margin:10px!important;border-radius:14px!important;overflow:hidden!important}
  .menu-card-image img,.menu-image img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important}
  .menu-card-content,.menu-content{padding:12px 12px 12px 0!important;min-width:0!important}
  .menu-card h3,.menu-content h3{font-size:1rem!important}
  .menu-card p,.menu-content p{font-size:.78rem!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .button,.btn,button,[type=submit]{min-height:44px}
  .contact-actions,.dashboard-hero-actions{width:100%;display:grid!important;grid-template-columns:1fr!important}
  .contact-actions .button,.dashboard-hero-actions .button{width:100%;justify-content:center}
  footer{padding:24px 12px!important}
  footer>div{display:flex!important;flex-wrap:wrap!important;gap:10px!important}
  .floating-call-v50{right:10px!important;bottom:calc(10px + env(safe-area-inset-bottom))!important;max-width:calc(100vw - 20px)!important}
  .modal-card{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:18px!important;padding:18px!important}
  .cart-panel{width:100vw!important}
  .portal-brand-card{display:none!important}
  .portal-login-card{padding:22px 14px!important;min-height:100dvh!important;justify-content:flex-start!important}
  .portal-login-head,.auth-tabs,.auth-panel,.portal-login-support{max-width:none!important;width:100%!important}
  .auth-tabs{margin-top:1.25rem!important}
  .portal-dashboard-hero{padding:20px 16px!important;border-radius:16px!important}
  .dashboard-payment-summary{min-height:140px!important}
  .portal-v3-section{padding:16px!important;border-radius:14px!important}
  .admin-main,.admin-content,.dashboard-content,.rider-content{padding:12px!important}
  table{font-size:13px}
  th,td{padding:9px 8px!important}
}

@media (max-width: 420px){
  .section-wrap,.container,.page-wrap,.legal-shell{width:min(100% - 16px,1180px)}
  .menu-card{grid-template-columns:88px minmax(0,1fr)!important}
  .menu-card-image,.menu-image{width:88px!important;height:88px!important;min-height:88px!important;margin:8px!important}
  .menu-card-content,.menu-content{padding:10px 8px 10px 0!important}
  .z-hero-content,.hero-content{padding-inline:10px!important}
  .modal-card{padding:14px!important}
  .portal-login-card{padding-inline:10px!important}
}

@media (orientation:landscape) and (max-height:520px){
  .modal-card{max-height:calc(100dvh - 8px)}
  .portal-login-card{min-height:auto!important}
}
