@media (max-width:768px){.widget-container{border-radius:0}button,input,select{min-height:44px}select{font-size:16px}.table-container{-webkit-overflow-scrolling:touch;overflow-x:auto}.sticky-column{left:0}.sticky-column,.sticky-column-secondary{position:sticky;z-index:2;background:white}.sticky-column-secondary{left:48px}}@media (min-width:769px) and (max-width:1024px){.control-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.animate-slide-up{animation:slide-up .3s ease-out}.mobile-tooltip{position:fixed;bottom:0;left:0;right:0;background:white;border-top:1px solid #e5e7eb;box-shadow:0 -4px 6px -1px rgba(0,0,0,.1);z-index:50;max-height:50vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.swipe-indicator{width:40px;height:4px;background:#d1d5db;border-radius:2px;margin:8px auto}.touch-feedback{transition:background-color .15s ease}.touch-feedback:active{background-color:rgba(26,95,63,.1)}@media (max-width:768px){.no-select{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}.map-container svg{touch-action:manipulation}.chart-axis text,.chart-legend{font-size:10px}.chart-title{font-size:12px}}.control-panel-collapsed{max-height:48px;overflow:hidden;transition:max-height .3s ease}.control-panel-expanded{max-height:500px;transition:max-height .3s ease}.mobile-tabs{display:flex;position:sticky;bottom:0;background:white;border-top:1px solid #e5e7eb;z-index:40}.mobile-tab{flex:1;padding:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:56px;transition:background-color .2s ease}.mobile-tab-active{background-color:rgba(26,95,63,.1);border-top:2px solid #1a5f3f}.scroll-container{-webkit-overflow-scrolling:touch;overflow-scrolling:touch;will-change:transform}@media (max-width:768px){.loading-spinner{width:32px;height:32px}.loading-text{font-size:14px}}@media (max-width:640px){.text-responsive-xs{font-size:.75rem}.text-responsive-sm{font-size:.875rem}.text-responsive-base{font-size:1rem}.text-responsive-lg{font-size:1.125rem}}@media (max-width:768px){.touch-spacing>*+*{margin-top:.75rem}.touch-padding{padding:.75rem}}