:root{--safe-area-inset-top:env(safe-area-inset-top);--safe-area-inset-right:env(safe-area-inset-right);--safe-area-inset-bottom:env(safe-area-inset-bottom);--safe-area-inset-left:env(safe-area-inset-left);--ios-status-bar-height:44px}.pt-safe-area-inset-top{padding-top:var(--safe-area-inset-top)}.pb-safe-area-inset-bottom{padding-bottom:var(--safe-area-inset-bottom)}.pl-safe-area-inset-left{padding-left:var(--safe-area-inset-left)}.pr-safe-area-inset-right{padding-right:var(--safe-area-inset-right)}.mobile-device{-webkit-overflow-scrolling:touch;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.mobile-device p,.mobile-device span,.mobile-device div[contenteditable],.mobile-device input,.mobile-device textarea{-webkit-user-select:text;-moz-user-select:text;user-select:text}.ios-device{padding-top:var(--safe-area-inset-top);padding-bottom:var(--safe-area-inset-bottom)}.pwa-installed{overflow-x:hidden}.pwa-installed.ios-device{padding-top:var(--ios-status-bar-height)}.touch-device{touch-action:manipulation}.touch-device button,.touch-device a,.touch-device [role=button]{-webkit-tap-highlight-color:rgba(0,0,0,.1);touch-action:manipulation;min-width:44px;min-height:44px}.mobile-device *{will-change:auto;transform:translateZ(0)}@keyframes slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:.3s ease-out slide-up}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:.2s ease-out fade-in}.pwa-notification{z-index:1000;background:#fff;border-radius:12px;max-width:400px;margin:0 auto;padding:16px;animation:.3s ease-out slide-up;position:fixed;bottom:20px;left:20px;right:20px;box-shadow:0 10px 25px rgba(0,0,0,.15)}.pwa-notification.pwa-notification--error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca}.pwa-notification.pwa-notification--success{color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0}.pwa-notification.pwa-notification--info{color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe}.mobile-device input,.mobile-device textarea,.mobile-device select{border-radius:8px;min-height:44px;padding:12px;font-size:16px}.touch-device input:focus,.touch-device textarea:focus,.touch-device button:focus,.touch-device a:focus{outline-offset:2px;outline:2px solid #3b82f6}@media (prefers-color-scheme:dark){.pwa-notification{color:#f9fafb;background:#1f2937;border:1px solid #374151}.pwa-notification.pwa-notification--error{color:#fca5a5;background:#450a0a;border-color:#7f1d1d}.pwa-notification.pwa-notification--success{color:#86efac;background:#052e16;border-color:#166534}.pwa-notification.pwa-notification--info{color:#93c5fd;background:#0c1e3f;border-color:#1e40af}}.swipe-container{touch-action:pan-y pinch-zoom;position:relative;overflow:hidden}.swipe-content{transition:transform .3s cubic-bezier(.25,.46,.45,.94)}.mobile-device img{-webkit-user-select:none;-moz-user-select:none;user-select:none;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}.pwa-splash{z-index:9999;background:#000;flex-direction:column;justify-content:center;align-items:center;animation:.5s ease-out fade-in;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.pwa-splash-logo{color:#000;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;margin-bottom:20px;font-size:48px;font-weight:700;display:flex}.pwa-splash-text{color:#fff;text-align:center;font-size:24px;font-weight:700}@media screen and (max-width:768px){.pwa-installed{min-height:100vh;min-height:100dvh}}@media screen and (orientation:landscape) and (max-height:500px){.mobile-device{font-size:14px}.mobile-device .pwa-navigation-bar{height:40px}}.fab{color:#fff;z-index:100;background:#000;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;transition:all .3s;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 4px 12px rgba(0,0,0,.3)}.fab:hover{transform:scale(1.1);box-shadow:0 6px 16px rgba(0,0,0,.4)}.fab:active{transform:scale(.95)}.bottom-sheet{z-index:1000;background:#fff;border-radius:20px 20px 0 0;max-height:90vh;transition:transform .3s cubic-bezier(.25,.46,.45,.94);position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%)}.bottom-sheet.open{transform:translateY(0)}.bottom-sheet-handle{background:#d1d5db;border-radius:2px;width:40px;height:4px;margin:12px auto 20px}@media print{.pwa-navigation-bar,.fab,.pwa-notification,.bottom-sheet{display:none!important}}
