.swipe-action-preview{position:absolute;top:0;bottom:0;width:80px;display:flex;align-items:center;justify-content:center;z-index:1;pointer-events:none}.swipe-action{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-size:.75rem;font-weight:600;transition:opacity .2s ease;height:100%;width:100%;text-align:center;border-radius:0 8px 8px 0}.swipe-action-edit{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.swipe-action-delete{background:linear-gradient(135deg,#ef4444,#dc2626)}.swipe-action svg{margin-bottom:.25rem;width:20px;height:20px}.swipe-container{position:relative;overflow:hidden;background:#fff;border-radius:8px;transition:transform .3s ease}.pull-to-refresh-indicator{position:fixed;top:-60px;left:0;right:0;height:60px;background:#fff;display:flex;align-items:center;justify-content:center;z-index:9999;opacity:0;transition:all .3s ease;box-shadow:0 2px 10px #0000001a;border-bottom:1px solid #e5e7eb}.pull-refresh-spinner{display:flex;align-items:center;gap:.75rem;color:#6366f1;font-weight:500}.pull-refresh-spinner svg{width:24px;height:24px}.pull-to-refresh-indicator.ready{background:#6366f1;color:#fff}.pull-to-refresh-indicator.ready .pull-refresh-spinner{color:#fff}.pull-to-refresh-indicator.refreshing .animate-spin{animation:pullRefreshSpin 1s linear infinite}@keyframes pullRefreshSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.touch-active{opacity:.7;transform:scale(.98);transition:all .1s ease;background-color:#0000000d}.touch-ripple{position:relative;overflow:hidden}.touch-ripple:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.touch-ripple.ripple-active:before{width:300px;height:300px}.touch-context-menu{position:fixed;background:#fff;border-radius:12px;box-shadow:0 10px 25px #0003;z-index:9999;min-width:160px;overflow:hidden;transform:translate(-50%,-50%);animation:contextMenuAppear .2s cubic-bezier(.16,1,.3,1);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.context-menu-item{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;color:#374151;cursor:pointer;transition:all .2s ease;font-weight:500;min-height:48px;border-bottom:1px solid rgba(0,0,0,.05)}.context-menu-item:last-child{border-bottom:none}.context-menu-item:hover,.context-menu-item:active{background:#f8fafc;transform:translate(4px)}.context-menu-item svg{width:20px;height:20px;opacity:.7;transition:opacity .2s ease}.context-menu-item:hover svg{opacity:1}.context-menu-danger{color:#dc2626}.context-menu-danger:hover{background:#fef2f2;color:#b91c1c}.context-menu-separator{height:1px;background:#e5e7eb;margin:.5rem 0}.quick-view-modal{position:fixed;inset:0;background:#0009;z-index:9999;display:flex;align-items:center;justify-content:center;animation:modalBackdropAppear .3s ease;backdrop-filter:blur(4px);padding:1rem}.quick-view-content{background:#fff;border-radius:16px;max-width:min(90vw,500px);max-height:80vh;overflow:hidden;box-shadow:0 20px 40px #0000004d;animation:modalContentAppear .3s cubic-bezier(.16,1,.3,1);border:1px solid rgba(255,255,255,.2)}.quick-view-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e5e7eb;background:linear-gradient(135deg,#f8fafc,#f1f5f9)}.quick-view-header h3{margin:0;font-size:1.25rem;font-weight:600;color:#1f2937}.quick-view-close{background:#fffc;border:none;font-size:1.5rem;cursor:pointer;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#6b7280;transition:all .2s ease;backdrop-filter:blur(10px)}.quick-view-close:hover{background:#fff;color:#374151;transform:scale(1.1)}.quick-view-body{padding:1.5rem;overflow-y:auto;max-height:calc(80vh - 80px)}.quick-view-fields{display:grid;gap:1rem}.quick-view-field{display:flex;flex-direction:column;gap:.25rem}.quick-view-field label{font-weight:600;color:#6b7280;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.quick-view-field span{color:#1f2937;font-size:1rem;padding:.5rem 0;border-bottom:1px solid #f3f4f6}.loading-spinner{display:flex;align-items:center;justify-content:center;padding:2rem;color:#6b7280}.touch-confirmation-modal{position:fixed;inset:0;background:#0009;z-index:9999;display:flex;align-items:center;justify-content:center;animation:modalBackdropAppear .3s ease;backdrop-filter:blur(4px);padding:1rem}.touch-confirmation-content{background:#fff;border-radius:16px;padding:2rem;max-width:320px;width:100%;text-align:center;box-shadow:0 20px 40px #0000004d;animation:modalContentAppear .3s cubic-bezier(.16,1,.3,1)}.touch-confirmation-content p{margin:0 0 1.5rem;font-size:1rem;color:#374151;line-height:1.5}.touch-confirmation-actions{display:flex;gap:.75rem}.touch-btn{flex:1;padding:.875rem 1rem;border:none;border-radius:10px;font-weight:600;cursor:pointer;min-height:48px;font-size:1rem;transition:all .2s ease;position:relative;overflow:hidden}.touch-btn:active{transform:scale(.98)}.touch-btn-cancel{background:#f3f4f6;color:#374151}.touch-btn-cancel:hover{background:#e5e7eb}.touch-btn-confirm{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.touch-btn-confirm:hover{background:linear-gradient(135deg,#dc2626,#b91c1c)}.touch-toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%) translateY(100px);background:linear-gradient(135deg,#10b981,#059669);color:#fff;padding:1rem 1.5rem;border-radius:12px;box-shadow:0 4px 12px #0003;z-index:9999;transition:transform .3s cubic-bezier(.16,1,.3,1);backdrop-filter:blur(10px);font-weight:500;max-width:calc(100vw - 2rem);text-align:center}.touch-toast.show{transform:translate(-50%) translateY(0)}.touch-toast-error{background:linear-gradient(135deg,#ef4444,#dc2626)}.touch-toast-warning{background:linear-gradient(135deg,#f59e0b,#d97706)}.touch-toast-info{background:linear-gradient(135deg,#3b82f6,#2563eb)}.sidebar-swipe-indicator{position:fixed;left:0;top:50%;transform:translateY(-50%);width:4px;height:60px;background:linear-gradient(to bottom,transparent,#6366f1,transparent);border-radius:0 4px 4px 0;opacity:0;transition:opacity .3s ease;z-index:1000}.sidebar-swipe-indicator.active{opacity:1}@keyframes contextMenuAppear{0%{opacity:0;transform:translate(-50%,-50%) scale(.8) rotateY(-10deg)}to{opacity:1;transform:translate(-50%,-50%) scale(1) rotateY(0)}}@keyframes modalBackdropAppear{0%{opacity:0}to{opacity:1}}@keyframes modalContentAppear{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes swipeActionShow{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@media (max-width: 768px){.touch-context-menu{min-width:200px;border-radius:16px}.context-menu-item{padding:1.25rem 1.5rem;font-size:1rem;min-height:56px}.context-menu-item svg{width:24px;height:24px}.quick-view-content{max-width:95vw;border-radius:20px}.quick-view-header{padding:1.25rem 1.5rem}.quick-view-body{padding:1.5rem}.touch-confirmation-content{max-width:280px;padding:1.5rem;border-radius:20px}.touch-btn{min-height:52px;font-size:1rem;border-radius:12px}.pull-to-refresh-indicator{height:70px;top:-70px}.pull-refresh-spinner{gap:1rem;font-size:1rem}.pull-refresh-spinner svg{width:28px;height:28px}}@media (prefers-color-scheme: dark){.touch-context-menu{background:#1f2937;border-color:#374151}.context-menu-item{color:#d1d5db;border-color:#ffffff1a}.context-menu-item:hover{background:#374151}.context-menu-danger{color:#fca5a5}.context-menu-danger:hover{background:#7f1d1d}.quick-view-content{background:#1f2937;border-color:#374151}.quick-view-header{background:linear-gradient(135deg,#374151,#1f2937);border-color:#4b5563}.quick-view-header h3{color:#f9fafb}.quick-view-close{background:#0000004d;color:#d1d5db}.quick-view-close:hover{background:#00000080;color:#f9fafb}.quick-view-field label{color:#9ca3af}.quick-view-field span{color:#f3f4f6;border-color:#374151}.touch-confirmation-content{background:#1f2937}.touch-confirmation-content p{color:#d1d5db}.touch-btn-cancel{background:#374151;color:#d1d5db}.touch-btn-cancel:hover{background:#4b5563}.pull-to-refresh-indicator{background:#1f2937;border-color:#374151}.pull-to-refresh-indicator.ready{background:#6366f1}}@media (prefers-reduced-motion: reduce){.touch-context-menu,.quick-view-content,.touch-confirmation-content,.touch-toast,.swipe-action,.touch-active{animation:none;transition:none}.pull-to-refresh-indicator.refreshing .animate-spin{animation:none}}@media (prefers-contrast: high){.touch-context-menu{border:2px solid #000}.context-menu-item:hover{background:#000;color:#fff}.touch-btn{border:2px solid currentColor}.swipe-action-edit{background:#00f}.swipe-action-delete{background:red}}.touch-context-menu,.quick-view-modal,.touch-confirmation-modal,.touch-toast,.swipe-container{will-change:transform,opacity;transform:translateZ(0)}.touch-active,.swipe-action-preview,.context-menu-item:hover{will-change:transform}.touch-context-menu,.swipe-action,.touch-btn{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.quick-view-body::-webkit-scrollbar{width:8px}.quick-view-body::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.quick-view-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.quick-view-body::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media (prefers-color-scheme: dark){.quick-view-body::-webkit-scrollbar-track{background:#374151}.quick-view-body::-webkit-scrollbar-thumb{background:#6b7280}.quick-view-body::-webkit-scrollbar-thumb:hover{background:#9ca3af}}
