<style>
  :root{
    --tabbar-height: 56px;
    --tabbar-bg: #fff;
    --tabbar-border: rgba(0,0,0,0.08);
    --accent: #1976d2;
    --inactive: #666;
  }

  /* Base: original desktop layout */
  .fl-col-group{
    display: flex;                   
    flex-wrap: nowrap; /* keep columns on one row */
    width: 100%;
    gap: 0;
  }
  .fl-col{
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    min-width: 0;
    box-sizing: border-box;
  }

  /* Tabbar (hidden on desktop) */
  .tabbar {
    display: none; /* shown on mobile via media query */
  }

  /* Mobile: turn columns into full-width panels + fixed tabbar */
  @media (max-width: 768px) {
    html,body{
      height:100%;
      margin:0;
    }
    .fl-col-group{
      display:block !important; /* stack logically; we will show only .fl-col.active */
      /*padding-bottom: calc(56px + env(safe-area-inset-bottom));*/ /* avoid tabbar overlap */
      padding-bottom: calc(10px + env(safe-area-inset-bottom)); /* avoid tabbar overlap */ 

    }
	  .snug-tabbed{
		      display: none !important; /* hidden by default on mobile */  
	  }  
    .fl-col{
      /*display: none !important;*/ /* hidden by default on mobile */
      width: 100%;
      /*height: calc(100vh - 56px);*/ /* make each column fill available viewport */
      overflow:auto;
      border: none;
      background: white;
      padding: 0px 10px;
	  max-width:unset !important;	
    }
    .fl-col.active{
      display: block !important;
    }

    .tabbar {
      display:flex;
      position: fixed;
      left:0;
      right:0;
      bottom:0;
      height: 70px;
      padding: 0 6px;
      box-sizing: border-box;
      align-items: center;
      justify-content: space-around;
      gap: 8px;
	  background-color: #ECF3FE;	
      border-top: 1px solid rgba(0,0,0,0.08);
      z-index: 9999;
      /* safe area for iPhone notch */
      padding-bottom: env(safe-area-inset-bottom);		
    }

    .tabbar button{
      -webkit-tap-highlight-color: transparent;
      background: transparent;
      border: none;
      flex: 1;
      height: 60px;
      margin: 4px;
      padding: 6px 8px;
      text-align: center;
      border-radius: 8px;
      font-size: 14px;
      color: #666;
      display:flex;
      flex-direction: column;
      align-items:center;
      justify-content:center;
      gap:4px;
    }

    .tabbar button[aria-selected="true"]{
      color: white;
      background: #1976d2;
      box-shadow: 0 1px 3px rgba(0,0,0,0.12);
    }
	  .tabbar button[aria-selected="true"] .label{
		color: white;  
	  }  

    /* Optional: simple icon placeholder - replace with SVG if you like */
    .tabbar .icon {
		font-size:16pt;
      /*width:20px;
      height:20px;
      border-radius:4px;
      background: currentColor;
      opacity: 0.9;*/
    }

	  .tabbar .label {
		color: #666; 
		font-size: 9pt;
		line-height: 10pt;  
	  }  
	  
    /* Small screens: reduce font-size slightly */
    @media (max-width: 420px){
      .tabbar button { font-size: 13px; padding: 6px; }
    }
  }

  /* Utility: visually-hidden for accessibility */
  .visually-hidden {
    position:absolute !important;
    height:1px; width:1px;
    overflow:hidden;
    clip:rect(1px,1px,1px,1px);
    white-space:nowrap;
  }

</style>