.touch-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scroll-behavior:smooth}.touch-scroll-y{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;scroll-behavior:smooth}.touch-scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}.touch-scroll-x::-webkit-scrollbar{display:none}.snap-scroll-x{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.snap-scroll-x>*{scroll-snap-align:start}.touch-target{min-height:44px;min-width:44px}.touch-none{touch-action:none}.touch-pan-x{touch-action:pan-x}.touch-pan-y{touch-action:pan-y}.touch-pinch-zoom{touch-action:pinch-zoom}.touch-manipulation{touch-action:manipulation}.touch-feedback{transition:transform .1s ease,opacity .1s ease;-webkit-tap-highlight-color:transparent}.touch-feedback:active{transform:scale(.97);opacity:.9}button.touch-feedback:active,[role=button].touch-feedback:active{transform:scale(.95)}.custom-scrollbar{scrollbar-width:thin;scrollbar-color:rgba(0,242,255,.3) transparent}.custom-scrollbar::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background:#00f2ff4d;border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#00f2ff80}@media (hover: none) and (pointer: coarse){.custom-scrollbar::-webkit-scrollbar{display:none}.custom-scrollbar{scrollbar-width:none}}@media (max-width: 768px){button:not(.touch-small),[role=button]:not(.touch-small),a.btn:not(.touch-small){min-height:44px;padding-top:10px;padding-bottom:10px}input,select,textarea{min-height:44px;font-size:16px}.touch-list-item{padding-top:12px;padding-bottom:12px;min-height:48px}.touch-full-width{width:100%}.touch-readable{font-size:14px;line-height:1.5}}@media (min-width: 768px) and (max-width: 1024px){button:not(.touch-small),[role=button]:not(.touch-small){min-height:40px}}.swipe-indicator{position:relative}.swipe-indicator:after{content:"";position:absolute;bottom:8px;left:50%;transform:translate(-50%);width:36px;height:4px;background:#ffffff4d;border-radius:2px}.pull-indicator{position:absolute;top:-40px;left:50%;transform:translate(-50%);width:24px;height:24px;border:2px solid rgba(0,242,255,.5);border-top-color:#00f2ff;border-radius:50%;opacity:0;transition:opacity .2s ease}.pull-indicator.visible{opacity:1;animation:spin .8s linear infinite}@keyframes spin{0%{transform:translate(-50%) rotate(0)}to{transform:translate(-50%) rotate(360deg)}}.panel-content{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.modal-scroll{max-height:calc(100vh - 120px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}@media (max-width: 768px){.modal-scroll{max-height:calc(100vh - 80px);max-height:calc(100dvh - 80px)}}.chart-container{touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none}.chart-container.zooming{touch-action:none}.chart-tooltip{pointer-events:none;touch-action:none}@media (hover: none) and (pointer: coarse){.chart-tooltip{font-size:12px;padding:8px 12px}}.tabs-container{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.tabs-container::-webkit-scrollbar{display:none}.tab-button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.tab-button:active{opacity:.8}.draggable{touch-action:none;-webkit-user-select:none;user-select:none}.draggable.dragging{opacity:.9;z-index:1000}.resize-handle{min-width:24px;min-height:24px;touch-action:none}@media (hover: none) and (pointer: coarse){.resize-handle{min-width:32px;min-height:32px}}@media (max-width: 768px){input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=url],select,textarea{font-size:16px}}.toggle-switch{min-width:48px;min-height:28px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}input[type=range]{-webkit-appearance:none;touch-action:manipulation}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px}@media (hover: none) and (pointer: coarse){input[type=range]::-webkit-slider-thumb{width:32px;height:32px}}.safe-area-top{padding-top:env(safe-area-inset-top)}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom)}.safe-area-left{padding-left:env(safe-area-inset-left)}.safe-area-right{padding-right:env(safe-area-inset-right)}.safe-area-all{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
