@keyframes pageSlideIn{0%{opacity:0;transform:translateX(10px)}to{opacity:1;transform:translateX(0)}}@keyframes pageSlideOut{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-10px)}}main{animation:pageSlideIn .2s ease-out}html{overflow-y:scroll;-webkit-overflow-scrolling:touch}body{overscroll-behavior-y:none}@media (max-width:768px){.tap-target,a,button,input,select,textarea{min-height:44px}.tap-target{min-width:44px}}[role=button]:active,a:active,button:active{opacity:.7;transform:scale(.98)}.floating-button{box-shadow:0 4px 12px rgba(0,0,0,.15),0 2px 6px rgba(0,0,0,.1);transition:all .2s cubic-bezier(.4,0,.2,1)}.floating-button:active{transform:scale(.95);box-shadow:0 2px 8px rgba(0,0,0,.12),0 1px 4px rgba(0,0,0,.08)}.card-press:active{transform:scale(.98);opacity:.9}.drawer-overlay{animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.drawer-content{animation:slideInFromLeft .3s cubic-bezier(.4,0,.2,1)}@keyframes slideInFromLeft{0%{transform:translateX(-100%)}to{transform:translateX(0)}}@media (max-width:768px){.bottom-sheet{position:fixed;bottom:0;left:0;right:0;border-radius:20px 20px 0 0;box-shadow:0 -4px 20px rgba(0,0,0,.1);animation:slideUpFromBottom .3s cubic-bezier(.4,0,.2,1)}@keyframes slideUpFromBottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.bottom-sheet-handle{width:36px;height:4px;background:rgba(0,0,0,.2);border-radius:2px;margin:12px auto 8px}}.no-select,button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.scroll-smooth{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}@supports (padding:max(0px)){.safe-area-top{padding-top:max(env(safe-area-inset-top),0px)}.safe-area-bottom{padding-bottom:max(env(safe-area-inset-bottom),16px)}.safe-area-left{padding-left:max(env(safe-area-inset-left),0px)}.safe-area-right{padding-right:max(env(safe-area-inset-right),0px)}}.ptr-element{display:flex;justify-content:center;align-items:center;height:60px;color:var(--muted-foreground)}@keyframes pullRefreshBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.ptr-refreshing{animation:pullRefreshBounce .6s ease-in-out infinite}@keyframes pullRefreshRing{0%{stroke-dasharray:0 125.6}to{stroke-dasharray:125.6 125.6}}@keyframes spin{to{transform:rotate(1turn)}}.loading-spinner{animation:spin 1s linear infinite}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.5);transform:translate(-50%,-50%);transition:width .6s,height .6s}.ripple:active:after{width:300px;height:300px}@keyframes skeleton-loading{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton{background:linear-gradient(90deg,rgba(200,200,200,.2),rgba(200,200,200,.3) 40px,rgba(200,200,200,.2) 80px);background-size:200px 100%;animation:skeleton-loading 1.2s ease-in-out infinite}.sticky-header{position:sticky;top:0;z-index:40;transition:box-shadow .2s ease}.sticky-header.scrolled{box-shadow:0 2px 8px rgba(0,0,0,.08)}.full-viewport-height{min-height:100vh;min-height:-webkit-fill-available}.no-overscroll{overscroll-behavior:none}.list-item{min-height:56px;display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border);transition:background-color .15s ease}.list-item:active{background-color:rgba(0,0,0,.05)}.swipe-action{transform:translateX(0);transition:transform .2s ease-out}