.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}.logo.rotate{animation:logo-spin infinite 20s linear}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-version{position:fixed;bottom:1rem;right:1rem;padding:.5rem 1rem;background-color:#0000001a;border-radius:4px;font-size:.85rem;color:#666;z-index:100}@media(max-width:768px){.app-version{bottom:.5rem;right:.5rem;font-size:.75rem;padding:.4rem .8rem}}.offline-status{position:fixed;top:0;left:0;right:0;z-index:9999;padding:.5rem 1rem;font-size:.85rem;font-weight:500;text-align:center;animation:slideDown .3s ease-out;box-shadow:0 2px 4px #00000026;-webkit-user-select:none;user-select:none}.offline-status.offline{background-color:#ff6b6b;color:#fff}.offline-status-content{display:flex;align-items:center;justify-content:center;gap:.5rem;max-width:1200px;margin:0 auto}.offline-status-icon{font-size:1rem;font-weight:700;line-height:1}.offline-status-text{flex:1}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.update-notification{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);z-index:9998;background-color:#4dabf7;color:#fff;padding:1rem 1.5rem;border-radius:8px;box-shadow:0 4px 12px #00000026;animation:slideUp .3s ease-out;max-width:90%;width:400px}.update-notification-content{display:flex;flex-direction:column;gap:.75rem;align-items:center}.update-notification-icon{font-size:1.5rem}.update-notification-text{font-weight:500;text-align:center}.update-notification-actions{display:flex;gap:.75rem;width:100%}.update-notification-button{flex:1;padding:.5rem 1rem;border:none;border-radius:4px;font-weight:500;cursor:pointer;transition:opacity .2s,transform .1s}.update-notification-button.update{background-color:#fff;color:#4dabf7}.update-notification-button.update:hover{opacity:.9;transform:scale(1.02)}.update-notification-button.dismiss{background-color:#fff3;color:#fff}.update-notification-button.dismiss:hover{background-color:#ffffff4d}@keyframes slideUp{0%{transform:translate(-50%) translateY(100%);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}@media(max-width:480px){.update-notification{width:calc(100% - 2rem);left:1rem;transform:none}}
